smtpclient "échec d'envoi de mail"
voici mon code
for(int i = 0; i < number ; i++)
{
MailAddress to = new MailAddress(iMail.to);
MailAddress from = new MailAddress(iMail.from, iMail.displayName);
string body = iMail.body;
string subject = iMail.sub;
oMail = new MailMessage(from, to);
oMail.Subject = subject;
oMail.Body = body;
oMail.IsBodyHtml = true;
oMail.Priority = MailPriority.Normal;
oMail.Sender = from;
s = new SmtpClient(smtpServer);
if (s != null)
{
s.Send(oMail);
}
oMail.Dispose();
s = null;
}
cette boucle envoie plus de 60 000 e-mail. mais mon problème, je suis "échec de l'envoi du mail" dans l'e-mail, à certains moments, 5000 et quelques fois moins que le reste d'entre eux est livré. et j'ai vérifier toutes ces erreurs email a l'adresse de courriel valide. ne sais pas quel est le problème. j'ai vraiment besoin d'aide dans ce.
Edit: C'est mon exception de Trace
Erreur Échec de l'envoi du courrier.; Intérieure
Ex - Système.IO.IOException: Impossible de
lire des données sur le transport
connexion: net_io_connectionclosed.
au
Système.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[]
tampon, Int32 décalage, Int32 lire,
Boolean readLine) à
Système.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader
l'appelant, Boolean oneLine) à
Système.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader
l'appelant) à
Système.Net.Mail.CheckCommand.Envoyer(SmtpConnection
conn, String& réponse)
Système.Net.Mail.MailCommand.Envoyer(SmtpConnection
conn, Byte[] commande, Chaîne d') à
Système.Net.Mail.SmtpTransport.SendMail(MailAddress
l'expéditeur, MailAddressCollection
les bénéficiaires, Chaîne deliveryNotify,
SmtpFailedRecipientException&
exception)
source d'informationauteur Nnp
Vous devez vous connecter pour publier un commentaire.
Bien, l ' "échec de l'envoi d'e-mail" devrait, espérons-le, un peu plus en détail. Mais il y a quelques choses qui pourrait en être la cause.
Peu importe si c'est l'un ou l'autre de ces erreurs, vous aurez envie de regarder l'exception et l'exception interne pour obtenir un peu plus de détail.
apparemment, ce problème a résolu juste en augmentant la taille de file d'attente à mon 3ème partie serveur smtp.
mais la réponse par ligne de contact des sons comme il est assez utile aussi
J'ai rencontré le même problème lors de l'envoi d'un volume élevé de courriel. Réglage de la
deliveryMethod
propriétéPickupDirectoryFromIis
fixe pour moi.Aussi, ne pas créer un nouveau SmtpClient à chaque fois.
quelle erreur obtenez-vous est-il un SmtpFailedrecipientException? si oui, vous pouvez vérifier la innerexceptions la liste et afficher le StatusCode pour obtenir plus d'informations. le lien ci-dessous a quelques bonnes informations
MSDN
Modifier pour les nouvelles informations
) Il s'agit d'un problème avec la conclusion de votre serveur SMTP à partir de ce que je peux voir, si vous dites que cela n'arrive que sur certains e-mails. Êtes-vous à l'aide de plus d'un serveur smtp et si oui, peut-être vous pouvez voies la question à l'un en particulier, si ce n'est peut-être que la vitesse ou de la quantité de courriels que vous envoyez est à l'origine de votre serveur smtp d'un problème.
Pour nous, tout était parfait, les e-mails sont très petites et pas beaucoup d'entre eux sont envoyés et sudently il a donné cette erreur. Il est apparu qu'un technicien installé ASTARO qui a été la prévention de l'email envoyé. et nous commencions à cette erreur, donc oui, l'erreur est un peu cryptique, mais j'espère que cela peut aider d'autres personnes.
Voir votre boucle pour l'envoi des emails et de l'erreur qui vous a fourni il est la seule solution.
Déclarer le courrier de l'objet de la boucle et attribuer
fromaddress
de la boucle que vous utilisez pour envoyer des mails. Lefromaddress
champ est arriver attribué de nouveau et de nouveau dans la boucle c'est votre problème.Cinq ans plus tard (j'espère que ce développeur n'est pas toujours en attente d'un correctif à ce sujet..)
J'ai eu le même problème, causé par la même erreur: j'ai été déclarer la
SmtpClient
l'intérieur de la boucle.La solution est simple - déclarer qu'une seule fois, en dehors de la boucle...
Cette erreur peut apparaître lorsque le serveur web ne peut pas accéder au serveur de messagerie. Assurez-vous que le serveur web puisse atteindre le serveur de messagerie, par exemple la commande ping.