TRES TRES URGENT HELP !!!! Problème serveur SMTP [Résolu]

Signaler
Messages postés
90
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
3 février 2011
-
Messages postés
90
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
3 février 2011
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
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
Messages postés
90
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
3 février 2011

Ok, mais comment on fait ?

Lawra C.
Messages postés
90
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
3 février 2011

Merci beaucoup!!!! :-)

Lawra C.