2014-08-28 3 views
0

Следующий код не может отправлять электронные письма клиентам и не бросает никаких исключений. В коде он не отправляет никаких писем или исключений, кроме как выполненных. Я совершенно новый об asp.net. Кто-то может помочь мне решить эту проблему.Не удалось отправить mailmessage в asp.net

Код:

try 
{ 
    String userName = "ramesh"; 
    String passWord = "123456"; 
    String sendr = "[email protected]"; 
    String recer = "[email protected]"; 
    String subject = "Comformation "; 
    String body = "Dear Customer"; 

    MailMessage msgMail = new MailMessage(sendr, recer, subject, body); 

    int PortNumber = 25; 
    SmtpClient smtp = new SmtpClient("smtp.test.com", PortNumber); 
    msgMail.IsBodyHtml = true;          
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtp.Credentials = new System.Net.NetworkCredential(userName, passWord); 

    smtp.Send(msgMail); 

    MsgLP.Text = "Emailed to Customer.."; 
    LogInLink.Visible = true; 
} 
catch (Exception ex){ 
    AuditLog.LogError("ErrorE-mail " + ex.Message); 
} 
+0

Вы посмотрели спам? Есть ли какие-либо настройки безопасности на Mail Server? – Mairaj

+0

Не могли бы вы рассказать мне, как проверить параметры безопасности спама на Mail Server? – Prathyush

+0

Откуда вы знаете, что он не отправляет электронное письмо, если его не бросает? Я предлагаю, чтобы ваш код работал нормально, но сервер smtp по пути не доставляет электронную почту. –

ответ

1

Вы должны установить smtp.EnableSsl=true и использовать номер порта 587. Ваш последний код будет таким:

try 
{ 
String userName = "ramesh"; 
String passWord = "123456"; 
String sendr = "[email protected]"; 
String recer = "[email protected]"; 
String subject = "Comformation "; 
String body = "Dear Customer"; 

MailMessage msgMail = new MailMessage(sendr, recer, subject, body); 

int PortNumber = 587; //change port number to 587 
SmtpClient smtp = new SmtpClient("smtp.gmail.com", PortNumber); //change from test to gmail 
smtp.EnableSsl = true; //set EnableSsl to true 
msgMail.IsBodyHtml = true;          
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtp.Credentials = new System.Net.NetworkCredential(userName, passWord); 
smtp.Send(msgMail); 
MsgLP.Text = "Emailed to Customer.."; 
LogInLink.Visible = true; 
} 
catch (Exception ex){ 
AuditLog.LogError("ErrorE-mail " + ex.Message); 
} 

Я проверил этот код с моими учетными данными, и он отлично работает.

+0

Извините, что я отредактировал код в блокноте для заметок, это может быть запятая, и что означает «smtp.EnableSsl = true;» пожалуйста, позвоните мне. – Prathyush

+0

SSL (** Secure Sockets Layer **) - это стандартная технология безопасности для установления зашифрованной связи между веб-сервером и браузером. Подробнее см. В [MSDN] (http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl (v = vs.110) .aspx) –

+0

Одно разъяснение в «Веб. config "файл сетевого хоста - 25, теперь я буду использовать пост 587, он будет работать или нет? – Prathyush

0
System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage(); 
     mm.From = new MailAddress("[email protected]"); 
     mm.To.Add("[email protected]"); 
     System.Net.Mail.Attachment attachment; 
     string strFileName; 
     strFileName = "Uploadfile/" + "200814062455PM_Admin_Screenshot (10).JPEG"; 
     attachment = new System.Net.Mail.Attachment(Server.MapPath(strFileName)); 
     mm.Attachments.Add(attachment); 
     mm.Body = ("<html><head><body><table><tr><td>Hi</td></tr></table></body></html><br/>"); ; 

     mm.IsBodyHtml = true; 
     mm.Subject = "Candidate " + Name + " for your Requirement " + Jobtt + " "; 
     System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587); 
     client.UseDefaultCredentials = false; 
     client.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); 
     client.Port = 587; 
     client.Host = "smtp.gmail.com"; 
     client.EnableSsl = true; 
     object userstate = mm; 
     client.Send(mm); 
Смежные вопросы