我们的网站曾经托管在运行Windows Server 2003和IIS 6的服务器上;它在这个领域工作得很好。现在我们正在尝试在运行Windows Web Server 2008 R2和IIS 7的新服务器上进行设置。在旧服务器和新服务器上,我们使用SmarterMail作为我们的电子邮件软件。
我在本地系统上从Outlook和Windows Live Mail发送和接收电子邮件没有问题。问题是从我们网站上的代码隐藏发送电子邮件。我可以从网站发送一封电子邮件到SmarterMail中设置的内部电子邮件地址 - 换句话说,发送到我们邮件服务器域内的地址。但是当我尝试从网站发送电子邮件到Gmail地址时,我收到以下错误:
继电器需要550认证
在发送电子邮件的ASP.NET页面的代码隐藏中,我有以下VB.NET代码:
Dim MailObj As New SmtpClient
With MailObj
.Credentials = New NetworkCredential(MailFromEmailAddress, Password)
.EnableSsl = False
.Host = "mail.MyDomain.com" ' our mail server subdomain name, configured in IIS
.Timeout = 180000
.UseDefaultCredentials = False
End With
MailObj.Send(OrderMailMsg)
我可以使用MailFromEmailAddress和密码登录SmarterMail,没有任何问题。
此外,我可以为邮件服务器的IP地址定义SMTP身份验证绕过,然后发送到Gmail地址的邮件就可以了。但是,当我们从我们的网站发送到域外的地址时,我无法使用SMTP身份验证。
有没有人知道我应该改变什么或做些什么来使这项工作?非常感谢!