如果服务器上未加载SMTP,您如何发送电子邮件?

时间:2008-12-16 13:15:36

标签: vb.net smtp

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

2 个答案:

答案 0 :(得分:3)

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

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

telnet RelayServerAddress 25

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

答案 1 :(得分:1)

如果指定中继服务器,则不应在服务器上安装smtp服务器。仔细检查My.Settings.EmailServerAddress是否确实指向中继服务器。