0

使用代码片段在 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)
4

2 回答 2

3

您不需要在本地运行 SMTP,因为 VB.Net 代码应该只使用基本的 TCP/IP 直接与中继服务器通信。

查看错误消息会很有用,服务器可能无法访问中继服务器上的端口 25(例如,由于防火墙配置)。请注意,您可以通过从命令行(在服务器上)启动 telnet 来在某种程度上测试此连接性,如下所示:

telnet RelayServerAddress 25

当您在域帐户下的机器上本地运行代码时,中继服务器也有可能发生一些身份验证,而当代码在本地帐户下的服务器上运行时无法发生(我我在这里做了一些大的假设)。

于 2008-12-16T13:30:53.107 回答
1

如果指定中继服务器,则服务器上不需要 smtp 服务器。仔细检查 My.Settings.EmailServerAddress 确实指向中继服务器。

于 2008-12-16T13:27:19.013 回答