Ошибка SMTP-подключения MailKit / MimeKit

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

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

Код vb.net, который я использую:

Dim mail As New MimeMessage()
mail.From.Add(New MailboxAddress("John DOE", "[email protected]"))
mail.To.Add(New MailboxAddress("Mary JANE", "[email protected]"))
mail.Subject = "Hello!"
Dim sText As New TextPart("plain")
sText.SetText("UTF-8", "How are you Jane?")
mail.Body = sText

Using smtp = New SmtpClient()
    smtp.LocalDomain = "XX.XXX.XX.XXX"
    smtp.Connect("server33.somewebhosting.com", 465, False)
    smtp.Authenticate("[email protected]", "XXXXXXXXXXXXXX")
    smtp.Send(mail)
    smtp.Disconnect(True)
End Using

Ошибка тайм-аута возникает в этой строке:

smtp.Connect("server33.somewebhosting.com", 465, False)

Странно то, что на моем домашнем компьютере он работает, а на работе - нет.

Как вы думаете, в чем причина проблемы?


person milo2011    schedule 13.01.2015    source источник
comment
но не на работе - я бы посоветовался с вашим ИТ-отделом, чтобы убедиться, что вы можете подключиться к SMTP-серверу через порт 465. Это, вероятно, брандмауэр или система безопасности, блокирующая соединение.   -  person Steven V    schedule 13.01.2015
comment
Mozilla Thunderbird работает на моем рабочем компьютере с этими настройками.   -  person milo2011    schedule 13.01.2015
comment
Но это может быть программный брандмауэр, к которому Thunderbird разрешено подключаться, а IIS - нет.   -  person Steven V    schedule 13.01.2015


Ответы (1)


Порт SMTP 465 - это порт SSL, поэтому третий аргумент Connect() должен быть True, а не False. Другими словами, измените код на этот:

smtp.Connect("server33.somewebhosting.com", 465, True)

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

Чтобы диагностировать проблему:

  1. убедитесь, что имя хоста и порт указаны правильно, обратившись к администратору
  2. убедитесь, что вы не находитесь за брандмауэром, который мешает вам подключиться
  3. убедитесь, что SMTP-сервер действительно в сети
person jstedfast    schedule 25.07.2015