在端口587上发送电子邮件使用telnet工作,但不能在C#代码中工作

时间:2015-05-16 06:50:31

标签: c# email

我正在尝试通过 Windows Server 2008 R2 计算机上的HostGator帐户在端口587上发送电子邮件。如果我通过TELNET检查事情,这一切都有效:

enter image description here

然后我通过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机箱上使用完全相同的凭据等工作正常。

赞赏所有想法和建议。

0 个答案:

没有答案