我正在尝试通过 Windows Server 2008 R2 计算机上的HostGator帐户在端口587上发送电子邮件。如果我通过TELNET检查事情,这一切都有效:
然后我通过C#.NET应用程序执行相同的操作:
public class EMailSendViaHostgator
{
private readonly string _Password;
private readonly string _Sender;
public EMailSendViaHostgator()
{
_Sender = "";
_Password = "";
}
public void SendMail(string aRecipient, string aSubject, string aMessage)
{
SmtpClient client = new SmtpClient("mail.willswelldone.com.au")
{
Port = 587,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false
};
NetworkCredential credentials = new NetworkCredential(_Sender, _Password);
client.EnableSsl = false;
client.Credentials = credentials;
MailMessage mail = new MailMessage(_Sender.Trim(), aRecipient.Trim())
{
Subject = aSubject,
Body = aMessage
};
client.Send(mail);
MessageBox.Show("Message Sent");
}
}
private void button1_Click(object sender, EventArgs e)
{
EMailSendViaHostgator sendMail = new EMailSendViaHostgator();
sendMail.SendMail("someone@there.com", "Some Subject!", "This is the message.");
}
注意:出于安全考虑,已省略用户名/密码和收件人电子邮件地址。
我在WinForms应用程序中运行上面的代码并且没有任何异常和“消息已发送”对话框但是电子邮件永远不会到达。如果我在我的开发Win 7盒子上运行完全相同的应用程序,那么电子邮件就会毫无问题地到达。
让HostGator检查他们的电子邮件日志证明是有问题的,但由于我没有得到任何例外,我假设SmtpClient成功连接到端口587并发送消息。
所以任何想法为什么SmtpClient在Windows Server 2008 R2上出现故障,但在我的Windows 7机箱上使用完全相同的凭据等工作正常。
赞赏所有想法和建议。