smtp发送带附件的邮件代码分享
该方式直接保存为HTML文件,也可以是文本文件,其它格式效果不是很好
MailMessagemmsg=newMailMessage();
mmsg.Subject="邮件标题";
mmsg.Body="邮件内容";
mmsg.To.Add("accept@qq.com");//接收邮箱
byte[]bytes=System.Text.Encoding.Default.GetBytes
(@"<table><tr><tdwidth=150>1234567891234567
</td><tdwidth=80>12345678</td></tr></table>");
MemoryStreamms=newMemoryStream(bytes);
ContentTypect=newContentType();
//附件文件类型
ct.MediaType=MediaTypeNames.Text.Html;
//附件名称,可以是其它后缀名
ct.Name="附件名称"+DateTime.Now.ToString()+".html";
mmsg.Attachments.Add(newAttachment(ms,ct));
//SMTP简单邮件协议
System.Net.Mail.SmtpClientsc
=newSystem.Net.Mail.SmtpClient();
sc.Host="127.0.0.1";//主机地址
sc.Port=25;//端口
//发送邮箱账号和密码
sc.Credentials=
newSystem.Net.NetworkCredential("account","password");
//发送邮箱
mmsg.From=newMailAddress("account@qq.com");
sc.Send(mmsg);
//释放流资源
ms.Close();
ms.Dispose();
另附上一个.net使用smtp发送带附件邮件的实例
publicstaticvoidsendEmail(stringtoAddress,stringemailbody)
{
varfromAddress=ConfigurationManager.AppSettings["EmailAddress"];
stringfromPassword=ConfigurationManager.AppSettings["EmailPassword"].ToString();
conststringsubject="JobRecommendation";
varsmtp=newSmtpClient
{
Host=ConfigurationManager.AppSettings["SmtpServer"].ToString(),
Port=int.Parse(ConfigurationManager.AppSettings["SmtpPort"]),
EnableSsl=true,
DeliveryMethod=SmtpDeliveryMethod.Network,
UseDefaultCredentials=false,
Credentials=newNetworkCredential(fromAddress,fromPassword)
};
using(varmessage=newMailMessage(fromAddress,toAddress,subject,HttpUtility.HtmlEncode(emailbody)))
{
smtp.Send(message);
}
}
<addkey="EmailAddress"value="**********@gmail.com"/>//EmailAddress
<addkey="EmailPassword"value="*********"/>//EmialPWD
<addkey="SmtpServer"value="smtp.gmail.com"/>
<addkey="SmtpPort"value="587"/>
<--带附件版本->
varfromAddress="allenyinj@gmail.com";
stringfromPassword="yj1989120";
conststringsubject="CV";
varsmtp=newSmtpClient
{
Host="smtp.gmail.com",
Port=587,
EnableSsl=true,
DeliveryMethod=SmtpDeliveryMethod.Network,
UseDefaultCredentials=false,
Credentials=newNetworkCredential(fromAddress,fromPassword)
};
MailMessageemail=newMailMessage(fromAddress,"allen.yin.jun@gmail.com");
email.Subject="INLINEattachmentTEST";
email.IsBodyHtml=true;
stringattachmentPath="C:\\3.jpeg";
Attachmentinline=newAttachment(attachmentPath);
inline.ContentDisposition.Inline=true;
inline.ContentDisposition.DispositionType=DispositionTypeNames.Inline;
//inline.ContentId="1";
//inline.ContentType.MediaType="image/png";
inline.ContentType.Name=Path.GetFileName(attachmentPath);
email.Attachments.Add(inline);
email.Body="test";
smtp.Send(email);
email.Dispose();
//如果没有路径,用Stream
Attachmentletter=newAttachment(FileUploadLetter.FileContent,FileUploadLetter.PostedFile.ContentType);
letter.ContentDisposition.Inline=true;
letter.ContentDisposition.DispositionType=DispositionTypeNames.Inline;
//inline.ContentId="1";
letter.ContentType.MediaType=FileUploadLetter.PostedFile.ContentType;
letter.ContentType.Name=Path.GetFileName(FileUploadLetter.PostedFile.FileName);
letter.Name=Path.GetFileName(FileUploadLetter.PostedFile.FileName);