.NET类库中名为System.Web.Mail的命名空间提供了3个不同的类,用来实现.Net平台下邮件的发送,分别是:
SmtpMail , MailMessage, MailAttachment
下面是用MailAttachment 实现带附件邮件的发送:
public void Mail_Send(Object src,EventArgs e)
{
//创建MailMessage对象
MailMessage MyMsg = new MailMessage();
MyMsg.From = tbFrom.Text;
MyMsg.To = tbTo.Text;
MyMsg.Subject = tbSubject.Text;
MyMsg.Priority = (MailPriority)ddlPriority.SelectedIndex;
MyMsg.BodyFormat= (MailFormat)ddlBodyFormat.SelectedIndex;
MyMsg.Body = tbBody.Text;
//如果有附件则上传
HttpPostedFile hpfFile = AttachFile.PostedFile;
if(hpfFile.FileName!="")
{
//有附件,则上传到Temp目录中
//取得文件名(不含路径)
char[] de = {'//'};
string[] AFilename = hpfFile.FileName.Split(de);
string strFilename = AFilename[AFilename.Length-1];
string strPath = Server.MapPath(".")+"//Temp//"+strFilename;
hpfFile.SaveAs(strPath);
//添加附件
MyMsg.Attachments.Add(new MailAttachment(strPath));
}
try
{
//发送
SmtpMail.Send(MyMsg);
lblShowMsg.Text ="发送成功";
tbTo.Text = "";
tbSubject.Text = "";
tbBody.Text = "";
ddlPriority.SelectedIndex = 1;
ddlBodyFormat.SelectedIndex = 0;
}
catch(Exception ee)
{
lblShowMsg.Text = "发送失败:"+ee.ToString();
}
}
经测试,我163的邮箱能收到信,但是显示内容为:
This is an automatically generated Delivery Status Notification.
Delivery to the following recipients failed.
附件也不没有正常显示,且显示的发信人为postmaster@qgy .