smtp исключение "ошибка при отправке почты" - PullRequest
6 голосов
/ 23 декабря 2010

Я делаю почтовое приложение SMTP с C # .Net.Он работает нормально для настроек Gmail, но я должен работать для подключения к VSNL.Я получаю исключение: "Ошибка отправки почты"

Мои настройки кажутся идеальными.В чем проблема?Почему я получаю исключение?

MailMessage mailMsg = new MailMessage();
MailAddress mailAddress = new MailAddress("mail@vsnl.net");
mailMsg.To.Add(textboxsecondry.Text);
mailMsg.From = mailAddress;

// Subject and Body
mailMsg.Subject = "Testing mail..";
mailMsg.Body = "connection testing..";

SmtpClient smtpClient = new SmtpClient("smtp.vsnl.net", 25);

var credentials = new System.Net.NetworkCredential("mail@vsnl.net", "password");

smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);

Я получаю исключение после ...

System.IO.IOException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed.

в System.Net.Mail.SmtpReplyReaderFactory.ProcessRead (буфер Byte [], смещение Int32, чтение Int32, логическое readLine)
в System.Net.Mail.SmtpReplyReaderFactory.ReadLines (вызывающая SmtpReplyReader, BooleoneLine)
в System.Net.Mail.SmtpReplyReaderFactory.ReadLine (вызывающая сторона SmtpReplyReader)
в System.Net.Mail.SmtpConnection.GetConnection (хост строки, порт Int32) в System.Net.Mail.SmtpTransport.GetConnection (Узел строки, порт Int32)
в System.Net.Mail.SmtpClient.GetConnection ()
в System.Net.Mail.SmtpClient.Send (сообщение MailMessage)

Ответы [ 7 ]

17 голосов
/ 23 декабря 2010

Проверьте InnerException исключения, должно сказать вам, почему это не удалось.

5 голосов
/ 23 декабря 2010

Попробуйте обернуть вызов Send в блок try catch, чтобы помочь выявить основную проблему. например,

 try
 {
     smtpClient.Send(mailMsg);
 }
 catch (Exception ex)
 {
     Console.WriteLine(ex);   //Should print stacktrace + details of inner exception

     if (ex.InnerException != null)
     {
         Console.WriteLine("InnerException is: {0}",ex.InnerException);
     }
 }

Эта информация поможет определить, в чем проблема ...

1 голос
/ 27 сентября 2016

Я использовал некоторые, но я проверяю только это, если отправка почты не удалась:

default value is false;

но его нельзя изменить на true;

 smtpClient.Port = smtpServerPort;
 smtpClient.UseDefaultCredentials = false;
 smtpClient.Timeout = 100000;
 smtpClient.Credentials = new System.Net.NetworkCredential(mailerEmailAddress, mailerPassword);
 smtpClient.EnableSsl = EnableSsl;

Все функции должны быть окружены пробным уловителем;

1 голос
/ 28 января 2013

Убедитесь, что ваш Антивирус блокирует отправку почты.В моем случае правила защиты доступа McAfee блокировали отправку писем, снятие отметок и отчетов.

0 голосов
/ 16 октября 2013

Проверьте, не ссылается ли машина на адрес IPv6.В моем случае использование имени машины дало мне ту же ошибку.Используя адрес ip4 он работал (то есть 10.0.0.4).Я избавился от ipv6, и он начал работать.

Не то решение, которое я искал, но, учитывая мое ограниченное понимание ipv6, я не знал других вариантов.

0 голосов
/ 04 июня 2013

Не видя ваш код, сложно найти причину исключения.Ниже приведены предположения:

Серверный хост VSNL smtp.vsnl.net

Исключение:

Unable to read data from the transport connection: net_io_connectionclosed

Обычноэто исключение возникает только в случае несоответствия имени пользователя или пароля .

0 голосов
/ 23 декабря 2010

Попробуйте, удалив smtpClient.EnableSsl = true;Я не уверен, поддерживает ли vsnl SSL и номер порта, который вы используете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...