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

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

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

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

Dim mail As New MimeMessage()
mail.From.Add(New MailboxAddress("John DOE", "john.doe@hotmail.com"))
mail.To.Add(New MailboxAddress("Mary JANE", "mary.jane@yahoo.com"))
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("myusername@somewebhosting.com", "XXXXXXXXXXXXXX")
    smtp.Send(mail)
    smtp.Disconnect(True)
End Using

Ошибка тайм-аута происходит в этой строке:

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

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

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

1 ответ

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

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

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

Для диагностики проблемы:

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