2015-01-02 3 views
0

При попытке отправить электронное письмо с C# я получаю сообщение «Отказ от отправки почты». Внутреннее исключение: «Не удалось выполнить попытку подключения, потому что связанная сторона не ответила должным образом через какое-то время или не удалось установить соединение, потому что подключенный хост не ответил [ip-адрес]».Ошибка отправки почты, связанная сторона неправильно ответила

Вот код, который я в настоящее время, хотя я пробовал много вариаций но безрезультатно:

string To = "[my email]"; 
string From = "[my email]"; 
string Subject = "Test Email"; 
string Body = "Test email."; 

MailMessage completeMessage = new MailMessage(From, To, Subject, Body); 
SmtpClient client = new SmtpClient("smtp.microsoft.com", 25); 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = true; 
client.Credentials = new NetworkCredential("[my login]", "[my password]"); 
client.EnableSsl = true; 

client.Send(completeMessage); 

Я попытался это без номера порта, без учетных данных для входа, и без способа доставки (в основном на основе других версий, которые я видел как правильные ответы на подобные вопросы), но я всегда получаю то же исключение.

UPDATE:

на основе рекомендаций Раскина, я попытался это с моей учетной записи Gmail (в основном тестовое письмо от меня ко мне). Вот что у меня в коде:

string To = "[my email]@gmail.com"; 
string From = "[my email]@gmail.com"; 
string Subject = "Test Email"; 
string Body = "With stuff in it."; 

MailMessage completeMessage = new MailMessage(From, To, Subject, Body); 
SmtpClient client = new SmtpClient("smtp.gmail.com", 25); 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.UseDefaultCredentials = true; 
client.Credentials = new NetworkCredential("[login]", "[password]"); 
client.EnableSsl = false; 

Новое сообщение, которое я получил, был «Сервер SMTP требует защищенного соединения или клиент не прошел проверку подлинности Ответ сервера был:. 5.7.0 должны выдать команду STARTTLS сначала i3sm38798124pdf.39 - gsmtp ".

После изменения этой линии, я был в состоянии успешно отправлять и получать электронную почту:

client.EnableSsl = true; 

Однако переключение обратно к исходной учетной записи учетных данных в результате одной и той же ошибки от ранее.

+0

Очень сложно диагностировать такие проблемы здесь, учитывая, что все детали, которые вы используете, были изменены, попробовали ли вы вышеуказанный код с простой учетной записью GMail? – Ruskin

+0

@ Рускин: Спасибо за идею. Я обновил вопрос соответствующим образом. –

ответ

0

Попробуйте с EnableSsl = false, так как вы используете порт 25 (который является простым SMTP): http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Ports.

Или используйте надлежащий порт для надежных соединений.

+0

Спасибо, но у меня такое же исключение. –

+0

Если вы еще этого не сделали, один из способов, который я использую для отладки этого типа проблем, - использовать что-то вроде Outlook (или эквивалента), чтобы проверить правильность сервера, работу учетных данных, настройки порта и т. Д. После того, как эта проверка работоспособности будет выполнена, я подтвержу настройки в коде. – HiDefLoLife

+0

Спасибо за идею. Информация, которую я вижу в Outlook, не соответствует настройкам, которые ищет SmtpClient, хотя (если я не ищу неправильное место). Например, нет номера порта, насколько я могу судить. Существует значение сервера, но это длинная строка символов, заканчивающаяся на @ microsoft.com, как если бы это был адрес электронной почты. Я попытался подключить это как замену для значения smtp.microsoft.com раньше, но получил ошибку. –

0

Попробуйте выполнить настройки Gmail, следующие за this, сообщите мне, если вы все еще получаете «Не удалось выполнить попытку подключения, потому что связанная сторона не ответила должным образом через какое-то время или установив соединение не удалось, поскольку подключенный хост не смог ответить [айпи адрес]." issue

+0

Спасибо, но на самом деле у меня уже есть тестовое письмо, работающее с gmail, и настройки выглядят так же, как у них здесь (кроме порта). Это с исходной учетной записью электронной почты, которую я пытался использовать, и у меня все еще есть проблема. –

+0

Я не могу найти справку по использованию smtp.microsoft.com, откуда вы извлекли эти параметры? Если это электронная почта для обмена, настройки немного разные, см. Эту ссылку http://stackoverflow.com/questions/6412162/send-mails-using-exchange-server-microsoft-outlook-web-accessin-asp-net – Ruskin

+0

Спасибо за ссылку, но я не могу найти ссылок на добавление для Microsoft.Exchange.WebServices.Data, что мешает мне попробовать этот ответ. –

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

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