Не удалось отправить почтовое сообщение в asp.net

Следующий код не может отправлять электронные письма клиентам и не создает никаких исключений. Код не отправляет электронное письмо или исключение, но выполняется. Я совершенно не знаком с 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);
}

person Ramesh S    schedule 28.08.2014    source источник
comment
Вы смотрели в спаме? Есть ли какие-либо настройки безопасности на почтовом сервере?   -  person Mairaj Ahmad    schedule 28.08.2014
comment
Подскажите, пожалуйста, как проверить настройки защиты от спама на почтовом сервере?   -  person Ramesh S    schedule 28.08.2014
comment
Откуда вы знаете, что он не отправляет электронное письмо, если он не бросает? Я предполагаю, что ваш код работает нормально, но smtp-сервер по пути не доставляет электронную почту.   -  person Ben Robinson    schedule 28.08.2014
comment
Я имею в виду папку «Спам» почты Yahoo, куда вы отправляете электронную почту. И используете ли вы свой собственный почтовый сервер или сторонний. Если вы находитесь в офисе, вы можете подтвердить это в Сетевом отделе.   -  person Mairaj Ahmad    schedule 28.08.2014
comment
@Ben Robinson, где я буду настраивать сервер SmtpClient и как проверить статус сервера   -  person Ramesh S    schedule 28.08.2014
comment
@MairajAhmad и @BenRobinson: Его код выдавал System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated., потому что он не установил EnableSsl to true. Я добавил строку, и код работает нормально.   -  person Syed Ali Taqi    schedule 28.08.2014


Ответы (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);
}

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

person Syed Ali Taqi    schedule 28.08.2014
comment
Извините, я отредактировал код в блокноте, возможно, это запятая, и что означает smtp.EnableSsl = true; не могли бы вы сказать мне. - person Ramesh S; 28.08.2014
comment
SSL (Secure Sockets Layer) — это стандартная технология безопасности для установления зашифрованного соединения между веб-сервером и браузером. Дополнительные сведения см. в разделе MSDN - person Syed Ali Taqi; 28.08.2014
comment
Одно уточнение в файле Web.config порт сетевого хоста 25, теперь я буду использовать пост 587 он будет работать или нет? - person Ramesh S; 28.08.2014
comment
Вы можете просто проверить это сами. Попробуйте с 25 и проверьте, отправляет он или нет. Если не отправляется, попробуйте 587 - person Syed Ali Taqi; 28.08.2014