2013-10-03 3 views
4

Я пытаюсь отправить электронную почту через веб-приложение, используя почтовый сервер моей клиентской организации. Ниже приведен код, который я использую..Net smtp не отправляет электронные письма, нет ошибок

MailMessage MyMailMessage = new MailMessage(); 
MyMailMessage.Subject = "Email testing"; 
MyMailMessage.From = new MailAddress("[email protected]", "My name"); 
MyMailMessage.To.Add(new MailAddress(strEmail, "Applicant")); 

SmtpClient mySmtpClient = new SmtpClient(); 
mySmtpClient.EnableSsl = true; 
mySmtpClient.Send(Accepted); 

файл Web.config:

<mailSettings> 
    <smtp deliveryMethod="Network" from=" [email protected]"> 
    <network host="smtps.mydomain.com" port="465" enableSsl="true" defaultCredentials="true" 
    userName="myName" password="myPassword" /> 
    </smtp> 
</mailSettings> 

Он отлично работает, когда я использую детали протокола SMTP в Gmail или детали Smtp моей местной организации. По какой-то причине, он не работает, и не вызывает никаких ошибок.

Я пробовал отлаживать и проверял исключение, в котором говорится «тайм-аут».

Я не уверен, что еще проверить. Может кто-нибудь предложить решение.

Примечание: Я также проверял, что брандмауэр не блокирует порт: 465.

спасибо.

С наилучшими пожеланиями,

Sud

ответ

1

Попробуйте это один:

var sysLogin="[email protected]"; 
var sysPass="[email protected]"; 
var sysAddress = new MailAddress(sysLogin, "Message from me!"); 

var receiverAddress = new MailAddress("[email protected]"); 

var smtp = new SmtpClient 
     { 
      Host = "smtp.gmail.com", //gmail example 
      Port = 587, 
      EnableSsl = false, 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential(sysLogin, sysPass) 
     }; 

     using (var message = new MailMessage(sysAddress, receiverAddress) { Subject = "Some subject", Body = "Some text" }) 
     { 
      smtp.Send(message); 
     } 
1

Вы проверили, что клиент-сервер SMTP был установлен действительный сертификат SSL и может принимать соединения на порт 465?

Если вы в состоянии это сделать, запустите пакетный сниффер, такой как WireShark, чтобы проверить поток пакетов.

Средство TcpView SysIntenerals - это облегченная утилита, которая позволит вам увидеть состояние пакета.

+0

Также проверка файлов журнала может определить, есть ли у вас проблемы с отправкой DNS. –

1
<system.net> 
    <mailSettings> 
     <smtp from="emialid.com"> 
     <network host="domain.com" port="25" userName="emialid.com" password="******" defaultCredentials="false"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 



public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment) 

    { 
     try 
     { 
      SmtpClient smtpClient = new SmtpClient(); 

      MailMessage message = new MailMessage(); 

      MailAddress fromAddress; 

      fromAddress = new MailAddress(FromMail); 

      smtpClient.Host = MailServer; 
      smtpClient.Port = 25; 

      System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword); 
      smtpClient.UseDefaultCredentials = false; 
      smtpClient.Credentials = SMTPUserInfo; 

      message.From = fromAddress; 

      message.To.Add(new MailAddress(To, DisplayName)); 
      if (CC != "") 
       message.CC.Add(new MailAddress(CC, DisplayName)); 
      if (BCC != "") 
       message.Bcc.Add(new MailAddress(BCC, DisplayName)); 

      message.Subject = Subject; 

      message.IsBodyHtml = true; 
      message.Body = "Your Password is : " + EmailMessage; 

      if (Attachment != "") 
       message.Attachments.Add(new Attachment(Attachment)); 

      message.Priority = MailPriority.High; 

      smtpClient.Send(message); 
      return "SendEmail"; 
     } 
     catch (Exception ex) 
     { 
      return "Email :" + ex; 
     } 

    } 
} 

}

1

Вы могли бы попытаться проверить соединение, набрав "телнет smtps.mydomain.com 465" в Command Promt (ЦМД).

С уважением

0

Благодарим всех за ваши предложения. Я исправил его, мне просто пришлось изменить номер порта с 465 по 25.

Смежные вопросы