VB .Net Sending email using Gmail account

2019-06-01 19:00发布

Why does this timeout?

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)

These settings come straight from my Outlook Express test setup, and it can send fine.

Set really long timeout = does nothing

Change port numbers to 587 or 25 = does nothing

One thought: Outlook Express has a "My server requires authentication" option, which I couldn't see an obvious equivalent for with SmtpClient. Could it be related to that?

Thanks in advance

Dave

--Trindaz on Fedang #vb.net-smtp

2条回答
成全新的幸福
2楼-- · 2019-06-01 19:12

Edit: You might need to add the following line: s.UseDefaultCredentials = False before the line starting with s.Credentials...

Do you have a firewall or some kind of anti-virus program running that might be blocking the connections?

A good place to start is to just do a simple connect from the command line.

telnet smtp.gmail.com 465

Note, depending on Windows version you might have to enable the telnet client first, see this link for details.

查看更多
三岁会撩人
3楼-- · 2019-06-01 19:12

You have to go into your gmail account and turn on access for less secure apps and change the port to 587

查看更多
登录 后发表回答