简体   繁体   English

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

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

I haven't had any problems with this code except for one user's email address (everyone has the same "@OurCompany" domain name). 除了一个用户的电子邮件地址(每个人都有相同的“ @OurCompany”域名)外,此代码没有任何问题

I have sent an email to him through Outlook and it went through fine. 我已经通过Outlook向他发送了一封电子邮件,一切顺利。 There are no exceptions being thrown when the code is run, but our SysAdmin says the emails I tried to send aren't even hitting email the server. 运行代码时不会引发任何异常,但是我们的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);
        }
    }
}

here is a simple method that can save you a lot of headache 这是一种可以使您免于头痛的简单方法

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

It turned out the emails were being dropped by SendGrid before it got to our email server for reason "Bounced Address." 原来,SendGrid已将电子邮件丢弃,然后才以“退回地址”为由将其发送到我们的电子邮件服务器。 The SysAdmin thinks the email server might have been down at one point which caused the email address to be added to a "does not exist" list. SysAdmin认为电子邮件服务器可能已关闭,导致电子邮件地址被添加到“不存在”列表中。 The address was removed from the list and it works now. 该地址已从列表中删除,现在可以使用。

Thanks for the suggestions 谢谢你的建议

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

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