这里是用jmail发的, 里面主要是一个正则表达式来把图片区分开作为内容附件发送,所以说正则很NB,就这么一句话能做这么个大事,!当时愁死我了!!!!
#region sendmail
public string SendMail(string sBody,string sSubject,string sMailto,ArrayList aMailcc,string mailfrom,string membername)
{
string sErrMessage="";
//string isSendMail=System.Configuration.ConfigurationSettings.AppSettings["isSendMail"];
jmail.Message jmail= new jmail.MessageClass();
jmail.ContentTransferEncoding="base64";
//郵件格式txt或html
//jmail.ContentType = "text/html";
jmail.Charset = "big5";
//jmail.Charset = "gb2312";
jmail.ISOEncodeHeaders = true;
//發送人郵件地址;
jmail.From = mailfrom; // '改成管理員郵件;
//發送人姓名;
jmail.FromName = membername;
//郵件主題
jmail.Subject = sSubject;
//身份驗證的用戶名;
jmail.MailServerUserName = myServer.Name;
//用戶密碼
jmail.MailServerPassWord = myServer.Password;
//添加收件人
jmail.AddRecipient(sMailto.Trim(),sMailto.Trim(),null);
//string contentid = jmail.AddAttachment(Server.MapPath("UpImages/f-di.gif"),true,"image/jpg");
for(int ic = 0;ic<aMailcc.Count;ic++)
{
jmail.AddRecipientCC(aMailcc[ic].ToString(),aMailcc[ic].ToString(),null); //添加抄送人
}
Regex re = new Regex("<[img|IMG].+?src=[/"|']?([^/"]+?)[/"|']?(?: .*?>|>)");
string s1 = "";
MatchCollection mc;
mc=re.Matches(sBody);
for (int i=0;i < mc.Count;i++)
{
s1 = mc[i].Groups[1].Value ;
string path = Server.MapPath(s1);
string contentid = jmail.AddAttachment(path,true,"image/jpg");
string replaced = "cid:"+contentid;
sBody = Regex.Replace(sBody, mc[i].Groups[1].Value, replaced);
}
jmail.HTMLBody = sBody;
try
{
jmail.Send(myServer.MailServer,false);
//'清除資源
//jmail.Close();
}
catch(Exception ex)
{
sErrMessage="郵件傳送失敗:" + ex.Message ;
}
return sErrMessage;
}
public string SendMail(string sBody,string sSubject,string sMailto,string mailfrom,string membername)
{
ArrayList aMailcc =new ArrayList();
return SendMail(sBody,sSubject,sMailto,aMailcc,mailfrom,membername);
}
#endregion