使用C#傳送郵件
最近有使用者提出了一個新的需求,希望公司的ERP系統在交易申請書被批准以後自動發郵件到相關人員的郵箱中,讓他們能第一時間知道。因為他們不想多打一次電話,也不願意每天都開著ERP,但是他們的Outlook能每5分鐘自動掃描一次新郵件跳出提醒。使用者的需求並不過分,所以我就接下來了。
在VS2003中有一個專門的 System.Web.Mail 類用來處理,使用還是很簡單的,以前就寫過。
VS2005中做了升級,用一個新的 System.Net.Mail 類,由於我最近剛好在學習VS2005,所以拋棄了以前的那個程式,現學現賣就是想秀秀技術,其實也沒什麼技術含量的。
MailAddress from = new MailAddress("gaosheng@hotmail.com", "高升"); //郵件的發件人
MailMessage mail = new MailMessage();
//設定郵件的標題
mail.Subject = txtSubject.Text;
//設定郵件的發件人
//Pass:如果不想顯示自己的郵箱地址,這裡可以填符合mail格式的任意名稱,真正發mail的使用者不在這裡設定,這個僅僅只做顯示用
mail.From = from;
//設定郵件的收件人
string address = "";
string displayName = "";
/**//* 這裡這樣寫是因為可能發給多個聯絡人,每個地址用 ; 號隔開
一般從地址簿中直接選擇聯絡人的時候格式都會是 :使用者名稱1 ; 使用者名稱2 ;
因此就有了下面一段邏輯不太好的程式碼
如果永遠都只需要發給一個收件人那麼就簡單了 mail.To.Add("收件人mail");
*/
string[] mailNames = (txtMailTo.Text + ";").Split(';');
foreach (string name in mailNames)
...{
if (name != string.Empty)
...{
if (name.IndexOf(' 0)
...{
displayName = name.Substring(0, name.IndexOf(' address = name.Substring(name.IndexOf('', ' ');
}
else
...{
displayName = string.Empty;
address = name.Substring(name.IndexOf('', ' ');
}
mail.To.Add(new MailAddress(address, displayName));
}
}
//設定郵件的抄送收件人
//這個就簡單多了,如果不想快點下崗重要檔案還是CC一份給領導比較好
mail.CC.Add(new MailAddress("Manage@hotmail.com", "尊敬的領導");
//設定郵件的內容
mail.Body = txtBody.Text;
//設定郵件的格式
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
//設定郵件的傳送級別
mail.Priority = MailPriority.Normal;
//設定郵件的附件,將在客戶端選擇的附件先上傳到伺服器儲存一個,然後加入到mail中
string fileName = txtUpFile.PostedFile.FileName.Trim();
fileName = "D:/UpFile/" + fileName.Substring(fileName.LastIndexOf("/") + 1);
txtUpFile.PostedFile.SaveAs(fileName); // 將檔案儲存至伺服器
mail.Attachments.Add(new Attachment(fileName));
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
SmtpClient client = new SmtpClient();
//設定用於 SMTP 事務的主機的名稱,填IP地址也可以了
client.Host = "smtp.hotmail.com";
//設定用於 SMTP 事務的埠,預設的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//這裡才是真正的郵箱登陸名和密碼,比如我的郵箱地址是 hbgx@hotmail, 我的使用者名稱為 hbgx ,我的密碼是 xgbh
client.Credentials = new System.Net.NetworkCredential("hbgx", "xgbh");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//都定義完了,正式傳送了,很是簡單吧!
client.Send(mail);
以前用 System.Web.Mail 類也寫過一個類似的,現在也貼出來吧,畢竟以前學習的時候也花了不少心血的
//用 System.Web.Mail 的寫法
MailMessage mail = new MailMessage();
mail.To = txtMailTo.Text; //收件人,多個收件人用 ; 號隔開,很是靈活
mail.Subject = txtSubject.Text; //主題
mail.Body = txtBody.Text; //內容
mail.BodyFormat = MailFormat.Html;
mail.Priority = MailPriority.Normal;
//顯示的發件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendemailaddress", "gaosheng@hotmail.com");
//實際發件人
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpaccountname", "hbgx@hotmail.com");
//使用者名稱
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "hbgx");
//密碼
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xgbh");
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //驗證級別
SmtpMail.SmtpServer = "smtp.hotmail.com";
SmtpMail.SmtpServer.Insert(0, "smtp.hotmail.com");
SmtpMail.Send(mail);
是不是以前的寫法靈活多了,當然現在也可以用了,因為在不同的名稱空間裡面所以使用上不會有衝突,不過升級了總有他的理由,兩個類之間用法還是有很多區別的,使用的時候要注意。
我是做開發的,不是專門的講師,寫錯的地方還批評指正,在CSDN上發訊息、留言或mail都行 不勝感激!
好了,要學的東西還很多,就到這裡了學習去了。
相關文章
- 使用C#傳送正文帶圖片郵件C#
- 使用phpmailer傳送郵件PHPAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI
- C#原生郵件傳送+傳送日誌記錄C#
- 使用python傳送郵件和接收郵件Python
- 郵件傳送
- 傳送郵件
- 使用 smtplib 傳送郵件
- 如何使用Excel傳送郵件?Excel
- 使用python傳送郵件Python
- C#傳送郵件,使用System.Web.Mail的版本C#WebAI
- c# 傳送郵件程式碼,帶附件C#
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 配置mail使用SMTP傳送郵件AI
- .NET Core使用FluentEmail傳送郵件AI
- 使用阿里雲傳送郵件阿里
- Python使用SMTP傳送郵件Python
- 使用Linux命令傳送郵件Linux
- 配置ActionMailer使用GMail傳送郵件AI
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- C# 傳送電子郵件原始碼片段C#原始碼
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 使用Apache commons email傳送郵件ApacheAI
- 使用python傳送和接收郵件Python
- 使用Spring的MailSender傳送郵件SpringAI