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 по-прежнему не удается подключиться после внесения этого изменения, это означает, что сервер недоступен.
Для диагностики проблемы:
- Убедитесь, что имя хоста и порт указаны правильно, связавшись с администратором.
- убедитесь, что вы не находитесь за брандмауэром, который мешает вам подключиться
- убедитесь, что SMTP-сервер действительно подключен