繁体   English   中英

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

[英]C# Smtp.Send not working for specific email address

除了一个用户的电子邮件地址(每个人都有相同的“ @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);
        }
    }
}

这是一种可以使您免于头痛的简单方法

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);
    };
}

原来,SendGrid已将电子邮件丢弃,然后才以“退回地址”为由将其发送到我们的电子邮件服务器。 SysAdmin认为电子邮件服务器可能已关闭,导致电子邮件地址被添加到“不存在”列表中。 该地址已从列表中删除,现在可以使用。

谢谢你的建议

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM