【发布时间】:2016-02-04 06:45:30
【问题描述】:
我有一个为家庭自动化应用程序设置的程序。我的目标是让它在出现严重错误时给我发短信,但我遇到了 smtp 部分的问题。我能够使用我公司的 SMTP 让我的应用程序正常工作(基本上,在我尝试转向免费选项之前,我想从一个工作的、封闭的系统开始,因为这些选项更具限制性,具有讽刺意味的是)。
我在网上浏览了很多很多示例,这似乎是 SMTP 阻止某些方法/端口的问题。我已经使用端口 25、465 和 587(在线使用的常见端口)尝试了以下代码。我也尝试将 EnableSs1 更改为 false,但这也没有奏效。
我知道我可能可以为 SMTP 服务器付费,但我首先尝试以便宜的价格(阅读:免费)购买。实际上,我并不期望需要很多通知。我找到了 turboSMTP,它是免费的,但我必须不使用免费的电子邮件地址,他们会验证您的家庭住址(这听起来有点阴暗......)。
无论如何,我的代码如下。如果有任何方法可以让这个工作(或者如果你知道一个免费的、可用的 SMTP 甚至是另一种方法),请告诉我!
我非常愿意自己做这项工作,我不只是想从别人那里得到解决方案,而且我已经知道该怎么做。您能给我的任何帮助将不胜感激。谢谢!
Try
Dim Smtp_Server As New SmtpClient
Dim e_mail As New MailMessage()
Smtp_Server.UseDefaultCredentials = True
Smtp_Server.EnableSsl = False
Smtp_Server.Host = "smtp.gmail.com"
Smtp_Server.Port = 465
Smtp_Server.EnableSsl = True
e_mail.From = New MailAddress("From Email Address", "From Email Name")
e_mail.To.Add("My Phone Number@mms.att.net")
e_mail.Subject = "Hello there!"
e_mail.IsBodyHtml = False
e_mail.Body = txtMessage.Text
Smtp_Server.Send(e_mail)
Catch ex As Exception
MsgBox(ex.Message)
End Try
【问题讨论】:
-
这段代码收到的错误信息是什么?与无效凭据相关的任何内容?
-
哦,这是一个相当冗长的响应,使用端口 25 或 587(发送电子邮件失败,无法连接删除服务器,尝试以访问权限禁止的方式访问套接字,等等)。听起来这些端口完全被阻止以这种方式使用。不过,465 端口似乎超时了。
-
您表示您想要的只是免费服务。 FWIW,我在 AOL 上添加了 NetworkCredential 来测试您的代码,它工作正常。只需按照他们的设置说明使用端口 587 和 Enablessl=True。