星期六, 10月 03, 2009

Email Sender Library

最近需要寫一個寄發 email 的程式, 記得網路上有一堆範例, 所以就 goolge 一下, 找到一個 liberary, 看了一了裡面的 source code, 這個 liberary 有支援 smtp ,gmail 和附件的寄發該有的基本功能都幫你寫好了, 直接拿來測試使用, 看 code 吧..

EmailSender.SmtpSender gs = new EmailSender.SmtpSender("totalbb.net.tw");
EmailSender.Message msg = new EmailSender.Message();
msg.Subject = "EmailSender測試";
msg.From = "Bibby <nstl388812@yahoo.com.tw>";
msg.To = "bibby <nstl388812@yahoo.com.tw>;bibbyGmail <bibbynet@gmail.com>";
msg.Bcc = "bibby <nstl388812@yahoo.com.tw>";
msg.Cc = "bibby <nstl388812@yahoo.com.tw>";
msg.Body = "EmailSender測試<br />EmailSender測試";
msg.Format = EmailSender.Format.Html;
EmailSender.MessageAttachment attachment = new EmailSender.MessageAttachment(
System.Net.Mime.MediaTypeNames.Application.Zip,
Server.MapPath("~/EmailSender/aa.rar"));
msg.Attachments.Add(attachment);
msg.Encoding = System.Text.Encoding.GetEncoding("Big5");
gs.Send(msg);

很簡單, 這樣該有個功能都有啦, 不過話說還是有點小缺憾啦 ,這liberary的"副本"和"密件副本"不能有多個 mail address, 我修改一下SmtpSender.cs 這一隻檔案, 就可以多個 mail address 啦..

if (!String.IsNullOrEmpty(message.Cc)) {
mailMessage.CC.Add(message.Cc);
}

if (!String.IsNullOrEmpty(message.Bcc)) {
mailMessage.Bcc.Add(message.Bcc);
}
//---------------------修改成下面---------------------------
if (!String.IsNullOrEmpty(message.Cc))
{
//修改成可以加入多個email address
string[] addressArr = message.Cc.Split(new char[] { ';', ',' });
foreach (string address in addressArr)
{
mailMessage.CC.Add(address);
}
}

if (!String.IsNullOrEmpty(message.Bcc))
{
//修改成可以加入多個email address
string[] addressArr = message.Bcc.Split(new char[] { ';', ',' });
foreach (string address in addressArr)
{
mailMessage.Bcc.Add(address);
}
}

最後感謝一下寫這 liberary 的作者啦..乾溫乾溫..

參考:

沒有留言: