2016-01-12 81 views
0

我對此代碼沒有任何問題,除了一個用戶的電子郵件地址(每個人都有相同的「@OurCompany」域名)。C#Smtp.Send不適用於特定的電子郵件地址

我已經通過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); 
     } 
    } 
} 
+0

這個特定的電子郵件地址有什麼不同?它有什麼特殊的字符?從展望來看,您是否輸入了電子郵件地址或從地址列表中選擇? – Spidey

回答

0

的原來的電子郵件正由SendGrid下降之前,一定要理性「退回的地址我們的郵件服務器。 「 SysAdmin認爲電子郵件服務器可能已經關閉,導致電子郵件地址被添加到「不存在」列表中。該地址已從列表中刪除,現在可以使用。

感謝您的建議

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); 
    }; 
} 
相關問題