TRES TRES URGENT HELP !!!! Problème serveur SMTP

Résolu
cs_lawraC Messages postés 90 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 3 février 2011 - 22 août 2005 à 13:53
cs_lawraC Messages postés 90 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 3 février 2011 - 22 août 2005 à 14:09
Bonjour,

j'ai développé une appli qui permet (entre autres) d'envoyer des mails.
Le but, par exemple, est d'envoyé un seul mail à 3 personnes différentes (1mail par personne et par 1 mail pour les 3).
Lorsque je le teste sur ma machine de développement qui utilise le serveur SMTP de l'intranet de ma boite, pas de soucis, les 3 mails partent les uns à la suite des autres.
Par contre, si je teste l'appli sur un autre poste qui doit utiliser le serveur SMTP du provider (dans mon cas Free), un seul mail peut passer car aprés j'ai une erreur "trop de connexions".

A quoi cela peut-il être dû ? Parce que j'ai quand-même plus de 300 personnes susceptibles d'être les destinataires et les envois groupés sont bloqués à 100 (j'ai vu ça sur un forum) destinataires. Ca implique donc que je fasse quand-même plusieurs envois.

A moins que ce soit lié au temps entre les connexions ?

Ci joint l'extrait du code.

Merci d'avance

****** code sur bouton envoi *****
lListes : listes de destinataires cochées


foreach( C_Listes l
in lLISTES)


{


conn =
new C_connexion();
conn.sqlconn.Open();
comm =
new OleDbCommand();
comm.CommandText="Select email_destinataire from Td_Destinataire where id_d in (Select id_d from Td_ListeDestinataire where id_l=" + l.getIdL().ToString() +")";
comm.Connection=conn.sqlconn;
rs=comm.ExecuteReader();

while (rs.Read())
{
mail =
new C_EnvoiMail(
this.txtbox_sujet.Text,
this.txtbox_contenu.Text, rs.GetString(0),"",from,
this.pieces);


}
}

***** le code dans ma classe d'envoi d'e-mail ******

public C_EnvoiMail(
string ssujet,
string scontenu,
string sto,
string scc,
string sfrom,System.Web.Mail.MailAttachment[] pieces)


{



maildef.To = sto;
maildef.Cc = scc;

maildef.From = sfrom;

maildef.Subject = ssujet;
maildef.Body = scontenu;
C_connexion conn =
new C_connexion();
conn.sqlconn.Open();
OleDbCommand comm =
new OleDbCommand();
comm.CommandText="Select smtp_serveur from td_smtp";
comm.Connection=conn.sqlconn;
OleDbDataReader rs;
rs = comm.ExecuteReader();
rs.Read();
SmtpMail.SmtpServer = rs.GetString(0);
rs.Close();
conn.sqlconn.Close();



foreach (System.Web.Mail.MailAttachment p
in pieces)
{

if(p!=
null)
{
maildef.Attachments.Add(p);
}
}

try
{
SmtpMail.Send(maildef);
}

catch(Exception Mailerreur)
{
MessageBox.Show(Mailerreur.ToString());
}


}

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 14:07
dans ta boucle :
while (rs.Read())
{
mail = new C_EnvoiMail(this.txtbox_sujet.Text,this.txtbox_contenu.Text, rs.GetString(0),"",from,this.pieces);


System.Threading.Thread.Sleep(1000); // millisecondes

}


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 14:03
je pense qu'il faut que tu temporises entre les envoies... genre 1 seconde ou 2.


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
0
cs_lawraC Messages postés 90 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 3 février 2011
22 août 2005 à 14:05
Ok, mais comment on fait ?

Lawra C.
0
cs_lawraC Messages postés 90 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 3 février 2011
22 août 2005 à 14:09
Merci beaucoup!!!! :-)

Lawra C.
0
Rejoignez-nous