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);