2017-02-20 8 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-сервер ожидает получать почту от имени (тот, который отображается, если вы выполняете nslookup в записи MX для домена, который вы отправляете), тогда он должен обычно Работа. Однако некоторые почтовые серверы не будут принимать сообщение, если почтовый ящик не существует. Я считаю, что это то, что ваш сервер говорит вам в этом случае. Другие согласятся с этим и отбросят его без ошибок, так что если вы являетесь спамером, вы не можете использовать эту ошибку, чтобы определить, действительны ли заполненные адреса электронной почты.

Если вы отправляете адрес, на который SMTP-сервер не тот, которого он ожидает, вы запрашиваете его для отправки электронной почты. Обычно это запрещено большинством серверов, если вы не прошли аутентификацию и не имеете соответствующего разрешения.

+0

Этот сервер принадлежит мне, и я использую для отправки электронной почты через него с помощью компактного приложения рамки. В этом случае я использую другую учетную запись smtp-сервера для отправки электронной почты. Я попробую те же параметры SMTP, которые я использовал с другим приложением. – jstuardo