C#Smtp.Send不适用于特定的电子邮件地址

时间:2016-01-12 20:19:56

标签: c# smtp smtpclient

除了一个用户的电子邮件地址(每个人都有相同的" @ OurCompany"域名)之外,我对此代码没有任何问题。

我已经通过Outlook向他发送了一封电子邮件,它很顺利。运行代码时不会抛出任何异常,但我们的SysAdmin说我尝试发送的电子邮件甚至不会给服务器发送电子邮件。

public static void SendEmail(string sTo, string sSubject, string sBody)
{
    using (MailMessage message = new MailMessage(new MailAddress(ConfigurationManager.AppSettings["FromUser"], "User"), new MailAddress(sTo))
    {
        Subject = sSubject,
        Body = sBody
    })
    {
        using (var client = new SmtpClient(ConfigurationManager.AppSettings["SMTPGridName"]))
        {
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]);
            client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailCredential"],
                ConfigurationManager.AppSettings["EmailPassword"]);
            client.EnableSsl = true;
            client.Send(message);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

这是一个简单的方法,可以为您节省很多麻烦

public static void SendEmail(string sTo, string subject, string body)
{
    var Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]);
    using (var client = new SmtpClient(Your EmailHost, Port))
    using (var message = new MailMessage()
    {
        From = new MailAddress(FromEmail),
        Subject = subject,
        Body = body
    })
    {
        message.To.Add(sTo);
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailCredential"],
                ConfigurationManager.AppSettings["EmailPassword"]);
        client.EnableSsl = true;
        client.Send(message);
    };
}

答案 1 :(得分:0)

事实证明,SendGrid在到达我们的电子邮件服务器之前发送了电子邮件,原因是#34; Bounced Address。" SysAdmin认为电子邮件服务器可能已经在某一点下降,导致电子邮件地址被添加到"不存在"名单。该地址已从列表中删除,现在可以正常使用。

感谢您的建议