2017-02-20 30 views
0

我使用這個代碼來發送電子郵件:SmtpFailedRecipientsException的所有電子郵件地址,我測試

 MailMessage mail = new MailMessage(); 
     SmtpClient smtp = new SmtpClient(_smtpServer, _smtpPort); 
     smtp.UseDefaultCredentials = false; 
     smtp.Credentials = new System.Net.NetworkCredential(_smtpUser, _smtpPassword); 
     smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
     smtp.EnableSsl = _smtpSSL; 
     mail.From = new MailAddress(_fromEmail); 
     mail.To.Add(new MailAddress(toEmail, toName)); 
     if (!String.IsNullOrEmpty(ccEmail)) 
      mail.CC.Add(new MailAddress(ccEmail, ccName)); 
     mail.Subject = subject; 
     mail.Body = body; 
     mail.Priority = MailPriority.High; 
     if (attachment != null) 
     { 
      if (String.IsNullOrEmpty(fileName)) 
       fileName = "Adjunto " + DateTime.Today.ToString("yyyyMMddHHmmss" + ".pdf"); 
      mail.Attachments.Add(new Attachment(attachment, fileName, "application/pdf")); 
     } 
     smtp.Send(mail); 

     return true; 

問題我們,收件人只有一個,那不存在的郵箱。但是,當調用smtp.Send方法時,拋出以下異常:

{"No se pueden enviar todos los destinatarios."} 
    [System.Net.Mail.SmtpFailedRecipientsException]: {"No se pueden enviar todos los destinatarios."} 
    Data: {System.Collections.ListDictionaryInternal} 
    HelpLink: null 
    HResult: -2146233088 
    InnerException: {"El buzón de correo no está disponible. La respuesta del servidor fue: User unknown/Usuario desconocido/Usuario desconhecido"} 
    Message: "No se pueden enviar todos los destinatarios." 
    Source: "System" 
    StackTrace: " en System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)\r\n en System.Net.Mail.SmtpClient.Send(MailMessage message)\r\n en Common.MailHelper.Send(String toEmail, String toName, String ccEmail, String ccName, String subject, String body, MemoryStream attachment, String fileName) en c:\\WorkingFolder\\Proyectos\\Evcom\\Asistencia\\Nueva Normativa\\Asistencia\\Common\\MailHelper.cs:línea 55\r\n en Common.Ticket.Send(MailHelper mailHelper, MemoryStream pdfStream, String toEmail, String ccEmail) en c:\\WorkingFolder\\Proyectos\\Evcom\\Asistencia\\Nueva Normativa\\Asistencia\\Common\\Ticket.cs:línea 203" 
    TargetSite: {System.Net.Mail.MailWriter SendMail(System.Net.Mail.MailAddress, System.Net.Mail.MailAddressCollection, System.String, Boolean, System.Net.Mail.SmtpFailedRecipientException ByRef)} 

你能幫我嗎?

回答

0

這聽起來像你試圖通過smtp服務器中繼電子郵件,該服務器不允許你這樣做。

如果您要發送到SMTP服務器希望代表接收郵件的地址(如果您在MX記錄上爲要發送到的域在其MX記錄上執行nslookup時顯示該郵件),則通常應該工作。但是,如果郵箱不存在,某些郵件服務器將不會接受郵件。我相信這是你的服務器在這種情況下告訴你的。其他人會接受並丟棄它,所以如果你是一個垃圾郵件發送者,你不能使用這個錯誤來確定構成的電子郵件地址是否有效。

如果您發送的郵件地址不符合SMTP服務器的要求,那麼您需要中繼電子郵件。這通常不被大多數服務器所允許,除非您經過身份驗證並具有適當的權限。

+0

該服務器是我的,我用它通過一個緊湊的框架應用程序發送電子郵件。在這種情況下,我使用其他smtp服務器帳戶發送電子郵件。我將嘗試使用與其他應用程序相同的SMTP參數。 – jstuardo

相關問題