[英]Condition for sending mail with C#
我有以下代碼用於發送郵件,如果你有網絡連接,它可以很好地工作。
MailMessage oMail = new MailMessage(new MailAddress("andr3yy.design@yahoo.com"), new MailAddress(setare[0].email));
oMail.Subject = "Subject";
oMail.Body = "Body";
SmtpClient oSmtp = new SmtpClient();
oSmtp.Host = "smtp.mail.yahoo.com";
oSmtp.Credentials = new NetworkCredential("andr3yy.design", "password");
oSmtp.EnableSsl = false;
oSmtp.Port = 587;
oSmtp.Send(oMail);
問題是:如果您沒有網絡連接並訪問此功能,應用程序將崩潰。 我不希望這種情況發生。 我需要一個條件(如果)來檢查你是否連接到互聯網,但我是新的C#,我不知道一個。
一個好的方法是使用try
/ catch
塊:
MailMessage oMail = new MailMessage(new MailAddress("andr3yy.design@yahoo.com"), new MailAddress(setare[0].email)){
Subject = "Subject",
Body = "Body"
};
SmtpClient oSmtp = new SmtpClient() {
Host = "smtp.mail.yahoo.com",
Credentials = new NetworkCredential("andr3yy.design", "password"),
EnableSsl = false,
Port = 587
};
try{
oSmtp.Send(oMail);
}
catch(Exception e) {
string message = e.Message;
// this will handle no connection to the internet, along with other possible exceptions
}
如果這是一個問題,您應該在啟用電子郵件例程之前檢查網絡連接。
System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
這樣,您的用戶在發現連接不存在之前不會浪費時間編寫大型電子郵件。
if (GetIsNetworkAvailable()) {
// your code here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.