最近有用户提出了一个新的需求,希望公司的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 < mail1 >; 用户名2 < mail 2>;
因此就有了下面一段逻辑不太好的代码
如果永远都只需要发给一个收件人那么就简单了 mail.To.Add("收件人mail");
*/
string [] mailNames = (txtMailTo.Text + " ; " ).Split(
MailMessage mail = new MailMessage();
// 设置邮件的标题
mail.Subject = txtSubject.Text;
// 设置邮件的发件人
// Pass:如果不想显示自己的邮箱地址,这里可以填符合mail格式的任意名称,真正发mail的用户不在这里设定,这个仅仅只做显示用
mail.From = from;
// 设置邮件的收件人
string address = "" ;
string displayName = "" ;
/**/ /* 这里这样写是因为可能发给多个联系人,每个地址用 ; 号隔开
一般从地址簿中直接选择联系人的时候格式都会是 :用户名1 < mail1 >; 用户名2 < mail 2>;
因此就有了下面一段逻辑不太好的代码
如果永远都只需要发给一个收件人那么就简单了 mail.To.Add("收件人mail");
*/
string [] mailNames = (txtMailTo.Text + " ; " ).Split(