用微软的System.Net.Mail发送邮件,有些时候发邮件需要邮件内容中添加图片。
对象解释
SmtpClient类:允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。
MailAddress类:MailAddress类表示电子邮件的地址。该类结合SmtpClient类或MailMessage类使用,其实例存储了电子邮件的地址信息。
MailMessage 类:MailMessage类的实例表示一个电子邮件的所有内容,并用SmtpClient类来传输到SMTP服务器。若要指定电子邮件的发件人、收件人和内容,可以使用 MailMessage类的关联属性。
NetworkCredential类:为基于密码的身份验证方案(如基本、简要、NTLM 和 Kerberos 身份验证)提供凭据。
简单邮件例子
MailMessage mail = new MailMessage(); //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致 MailAddress fromAddr = new MailAddress("163XX@163.com", "系统邮件"); mail.From = fromAddr; //设置收件人,可添加多个,添加方法与下面的一样 mail.To.Add("to@163.com"); //设置邮件标题 mail.Subject = "主题"; //设置邮件内容 mail.Body = "内容"; //设置邮件发送服务器,服务器根据你使用的邮箱而不同,可以到相应的 邮箱管理后台查看,下面是163的; //设置发送人的邮箱账号和密码,POP3/SMTP服务要开启, 密码要是POP3/SMTP等服务的授权码 var smtp = new SmtpClient("smtp.163.com"); smtp.UseDefaultCredentials = true; smtp.Credentials = new NetworkCredential("163XX@163.com", "password"); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.EnableSsl = true; smtp.Send(mail); smtp.Dispose();
#C#发送邮件时在正文中插入图片(邮件中直接包含图片)
MailMessage mail = new MailMessage(); //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致 MailAddress fromAddr = new MailAddress("163XX@163.com", "系统邮件"); mail.From = fromAddr; //设置收件人,可添加多个,添加方法与下面的一样 mail.To.Add("to@163.com"); //设置邮件标题 mail.Subject = "主题"; //设置邮件内容 mail.Body = "内容"; Attachment attachment = new System.Net.Mail.Attachment("D:\test.png"); mail.Attachments.Add(attachment); mail.Body += "<img src="cid:" + attachment.ContentId + ""/>"; //这个写上附件就会变成文章中的图片
mail.Body += "内容";
mail.IsBodyHtml = true; //设置邮件发送服务器,服务器根据你使用的邮箱而不同,可以到相应的 邮箱管理后台查看,下面是163的; //设置发送人的邮箱账号和密码,POP3/SMTP服务要开启, 密码要是POP3/SMTP等服务的授权码
var smtp = new SmtpClient("smtp.163.com");
smtp.UseDefaultCredentials = true;
smtp.Credentials = new NetworkCredential("163XX@163.com", "password");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true; smtp.Send(mail);
smtp.Dispose();
其他的发送邮件文章 C#发送邮件封装
System.Net.Mail源码地址
https://github.com/dotnet/corefx/tree/master/src/System.Net.Mail