使用代码片段在VB.Net中发送电子邮件我已成功从本地计算机发送电子邮件,但当我将其上传到我的服务器时,我收到一条消息,表明电子邮件失败了。我们有一个运行SMTP的国家中继服务器,我在两个实例中都指向该服务器。在两台机器之间跳出来的唯一不同之处是服务器没有运行SMTP。如果我使用中继服务器发送运行SMTP的电子邮件,是否需要在服务器上运行SMTP?
Dim message As New MailMessage("DoNotReply@faa.gov", My.Settings.NotifyList, "Starting FalconCMSOffloader @ " & My.Settings.FacID & " - " & Now, "NM")
Dim emailClient As New SmtpClient(My.Settings.EmailServerAddress)
emailClient.Send(message)
答案 0 :(得分:3)
您不应该在本地运行SMTP,因为VB.Net代码应该使用基本TCP / IP直接与中继服务器通信。
查看错误消息很有用,服务器可能无法访问中继服务器上的端口25(例如,由于防火墙配置)。请注意,您可以通过从命令行(在服务器上)启动telnet来在一定程度上测试此连接,如下所示:
telnet RelayServerAddress 25
当您在域帐户下本地运行代码时,中继服务器可能会发生一些身份验证,而当代码在本地帐户下的服务器上运行时无法执行此操作(我在这里做了一些大的假设)。
答案 1 :(得分:1)
如果指定中继服务器,则不应在服务器上安装smtp服务器。仔细检查My.Settings.EmailServerAddress是否确实指向中继服务器。