VB .Net Отправка электронной почты с использованием учетной записи Gmail - PullRequest
1 голос
/ 01 сентября 2010

Почему этот тайм-аут?

Dim s As New SmtpClient
s.Host = "smtp.gmail.com"
s.Port = 465
s.EnableSsl = True
s.Timeout = 5000
s.Credentials = New NetworkCredential("my.name@gmail.com", "mypassword")

Dim m As New MailMessage
m.To.Add("my.name@gmail.com")
m.From = New MailAddress("my.name@gmail.com")
m.Body = "Test Message"
m.Subject = "Test Subject"
s.Send(m)

Эти настройки берутся прямо из моей настройки теста Outlook Express, и он может отправлять нормально.

Установить действительно большой тайм-аут = ничего не делает

Измените номера портов на 587 или 25 = ничего не делает

Одна мысль: в Outlook Express есть опция «Мой сервер требует аутентификации», для которой я не вижу очевидного эквивалента с SmtpClient.Может ли это быть связано с этим?

Заранее спасибо

Дэйв

- Триндаз на Феданге # vb.net-smtp

Ответы [ 2 ]

1 голос
/ 01 сентября 2010

Редактировать: вам может потребоваться добавить следующую строку: s.UseDefaultCredentials = False перед строкой, начинающейся с s.Credentials...

У вас работает брандмауэр или какая-либо антивирусная программа, которая может блокировать соединения?

Хорошее начало - просто подключиться из командной строки.

telnet smtp.gmail.com 465

Обратите внимание, что в зависимости от версии Windows вам, возможно, придется сначала включить клиент telnet, см. Подробности по этой ссылке .

0 голосов
/ 01 сентября 2016

Вы должны войти в свою учетную запись Gmail и включить доступ для менее безопасных приложений и изменить порт на 587

...