asp教程.net c# 支援html格式、帶附件、中文寄件者、密送、抄送郵件群發代碼
//web.config中可以這樣設定
<system.net>
<mailsettings>
<smtp>
<network host="hostname" port="25" username="a@163.com" password="xxxx"/>
</smtp>
</mailsettings>
</system.net>
//附件
string serverfilename = "";
if (this.upfile.postedfile.contentlength != 0)
{
string upfilename = this.upfile.postedfile.filename;
string[] strtemp = upfilename.split('.');
string upfileexp = strtemp[strtemp.length - 1].tostring();
serverfilename = server.mappath(datetime.now.tostring("yyyymmddhhmmss") + "." + upfileexp);
this.upfile.postedfile.saveas(serverfilename);
mm.attachments.add(new mailattachment(serverfilename));
}
asp.net教程郵件發送代碼
// 引入命名空間
using system.net;
using system.net.mail;
smtpclient smtp = new smtpclient(); //執行個體化一個smtpclient
smtp.deliverymethod = smtpdeliverymethod.network; //將smtp的出站方式設為 network
smtp.enablessl = false;//smtp伺服器是否啟用ssl加密
smtp.host = "smtp.163.com"; //指定 smtp 伺服器位址
smtp.port = 25; //指定 smtp 伺服器的連接埠,預設是25,如果採用預設連接埠,可省去
//如果你的smtp伺服器不需要身份認證,則使用下面的方式,不過,目前基本沒有不需要認證的了
smtp.usedefaultcredentials = true;
//如果需要認證,則用下面的方式
smtp.credentials = new networkcredential("郵箱帳號@163.com", "郵箱密碼");
mailmessage mm = new mailmessage(); //執行個體化一個郵件類
mm.priority = mailpriority.high; //郵件的優先順序,分為 low, normal, high,通常用 normal即可
mm.from = new mailaddress("郵箱帳號@163.com", "真有意思", encoding.getencoding(936));
//收件方看到的郵件來源;
//第一個參數是發信人郵件地址
//第二參數是發信人顯示的名稱
//第三個參數是第二個參數所使用的編碼,如果指定不正確,則對方收到後顯示亂碼
//936是簡體中文的codepage值
註:上面的郵件來源,一定要和你登入郵箱的帳號一致,否則會認證失敗
mm.replyto = new mailaddress("test_box@gmail.com", "我的接收郵箱", encoding.getencoding(936));
//replyto 表示對方回複郵件時預設的接收地址,即:你用一個郵箱發信,但卻用另一個來收信
//上面後兩個參數的意義,同 from 的意義
mm.cc.add("a@163.com,b@163.com,c@163.com");
//郵件的抄送者,支援群發,多個郵件地址之間用半形逗號分開
//當然也可以用全地址,如下:
mm.cc.add(new mailaddress("a@163.com", "抄送者a", encoding.getencoding(936)));
mm.cc.add(new mailaddress("b@163.com", "抄送者b", encoding.getencoding(936)));
mm.cc.add(new mailaddress("c@163.com", "抄送者c", encoding.getencoding(936)));
mm.bcc.add("d@163.com,e@163.com");
//郵件的密送者,支援群發,多個郵件地址之間用半形逗號分開
//當然也可以用全地址,如下:
mm.cc.add(new mailaddress("d@163.com", "密送者d", encoding.getencoding(936)));
mm.cc.add(new mailaddress("e@163.com", "密送者e", encoding.getencoding(936)));
mm.sender = new mailaddress("xxx@xxx.com", "郵件寄件者", encoding.getencoding(936));
//可以任意設定,此資訊包含在郵件標頭中,但並不會驗證有效性,也不會顯示給收件者
//說實話,我不知道有啥實際作用,大家可不理會,也可不寫此項
mm.to.add("g@163.com,h@163.com");
//郵件的接收者,支援群發,多個地址之間用半形逗號分開
//當然也可以用全地址添加
mm.to.add(new mailaddress("g@163.com", "接收者g", encoding.getencoding(936)));
mm.to.add(new mailaddress("h@163.com", "接收者h", encoding.getencoding(936)));
mm.subject = "這是郵件標題"; //郵件標題
mm.subjectencoding = encoding.getencoding(936);
// 這裡非常重要,如果你的郵件標題包含中文,這裡一定要指定,否則對方收到的極有可能是亂碼。
// 936是簡體中文的pagecode,如果是英文標題,這句可以忽略不用
mm.isbodyhtml = true; //郵件內文是否是html格式
mm.bodyencoding = encoding.getencoding(936);
//郵件內文的編碼,設定不正確,接收者會收到亂碼
mm.body = "<font color="red">郵件測試,呵呵</font>";
//郵件內文
mm.attachments.add( new attachment( @"d:a.doc", system.net.mime.mediatypenames.application.rtf ) );
//添加附件,第二個參數,表示附件的檔案類型,可以不用指定
//可以添加多個附件
mm.attachments.add( new attachment( @"d:b.doc") );
smtp.send( mm );