SmtpClient无法发送电子邮件

时间:2013-11-27 03:36:16

标签: vb.net smtp

我的网站(我称之为mydomain.com)托管在运行Windows Server 2008 R2的1& 1专用服务器上。对于防病毒保护,它具有AVG File Server Edition 2013.未启用Windows防火墙。

在该服务器上,我安装了SmarterMail,并通过子域mail.mydomain.com将其用于我的所有电子邮件。从我的网站,我发送电子邮件,它工作正常。

今天我为Rackspace设置了一个电子邮件托管帐户,我正在尝试将其作为我自己服务器托管的替代品进行测试。我正在使用其他域名myotherdomain.com进行测试。我在Rackspace中设置了两个用户帐户,在本地系统上设置了Outlook,以便为这个新域发送和接收电子邮件,它在Outlook中运行良好。

但是,当我尝试从我的网站发送电子邮件时,我收到错误消息。这是我在测试页的Page_Load中使用的VB.NET代码:

Dim Msg As New MailMessage("orders@myotherdomain.com", "customer@yahoo.com")

With Msg
  .Subject = "Email test"
  .Body = "This is a test message."
  .IsBodyHtml = True
End With

Dim Smtp As New SmtpClient

With Smtp
  .UseDefaultCredentials = False
  .Credentials = New NetworkCredential("orders@myotherdomain.com", strPassword)
  .DeliveryMethod = SmtpDeliveryMethod.Network
  .EnableSsl = True
  .Host = "secure.emailsrvr.com"
  .Port = 465
End With

Try
  Smtp.Send(Msg)

  lblMessage.Text = "Success!"

Catch SmtpEx As SmtpException
  lblMessage.Text = "SMTP exception: " & SmtpEx.Message
  If SmtpEx.InnerException IsNot Nothing Then lblMessage.Text &= " (InnerException: " & SmtpEx.InnerException.Message & ")"

Catch GeneralEx As Exception
  lblMessage.Text = "General exception: " & GeneralEx.Message
End Try

我可以使用orders@myotherdomain.com和strPassword的值登录Rackspace电子邮件门户。

尝试从我的网站发送电子邮件时收到的SMTP错误消息是:发送邮件失败。 (InnerException:无法从传输连接读取数据:net_io_connectionclosed。)

在我的1& 1控制面板中,我为myotherdomain.com配置了DNS设置,以获取其他地方未使用的IP地址,并且我已将该IP地址的反向映射定义为myotherdomain.com。我还指定它使用另一个邮件服务器并定义了由Rackspace指定的mx0和mx1服务器名称。

当Rackspace上托管的域名时,有人可以帮助解决为什么电子邮件无法在我的网站上运行的想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我刚刚使用Rackspace SMTP遇到了同样的问题。问题是.net SmtpClient不支持隐式SSL,这是在该SMTP服务器上的端口465上提供的。我切换到使用端口587,它工作正常。

请参阅http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx