如何使用c# 实现邮件发送功能 ,以及如何向邮件内容添加图片 您所在的位置:网站首页 怎么用微信发邮件到邮箱里面发送 如何使用c# 实现邮件发送功能 ,以及如何向邮件内容添加图片

如何使用c# 实现邮件发送功能 ,以及如何向邮件内容添加图片

2024-07-16 01:58| 来源: 网络整理| 查看: 265

1.添加引用: 

using System.Net.Mail; using System.Net;//验证发件人发件人邮箱需要用到NetworkCredential

2.创建发送邮件的方法(如果有多个收件人或者抄送人,先将收件人用特殊符号拼接,再用split切割成数组然后循环添加就好了)

具体看如下代码:

public string sendmail(string toMail, string subject) { string user = "[email protected]";//发件人,这边也可以自定义 string passw = "xxx";//密码 string Suffix = ""; //邮箱后缀 int port = 587; //端口号 string smtp = "smtp..net"; Suffix = user.Substring(user.IndexOf('@')); if (Suffix == "@qindatech.com") { smtp = "smtp.qiye.163.com"; } else if (Suffix == "@51techservice.com") { smtp = "smtp.mxhichina.com"; } else if (Suffix == "@qq.com") { smtp = "smtp.qq.com"; } else if (Suffix == "@sh-teru.com") { smtp = "smtp.exmail.qq.com"; } //实例化一个发送邮件类。 System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage(); //发件人邮箱地址,方法重载不同,可以根据需求自行选择。 mailMessage.From = new MailAddress(user); //收件人邮箱地址。 //这边收件人是用;进行拼接 if (toMail.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries).Length > 1) { //如果有多个 foreach (var address in toMail.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { mailMessage.To.Add(address); } } else { mailMessage.To.Add(new MailAddress(toMail)); } //抄送人 if (chaosong.Split(new[] { ";"},StringSplitOptions.RemoveEmptyEntries).Length>1) { foreach (var chaosong1 in chaosong.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { mailMessage.CC.Add(chaosong1); } } else if (chaosong=="") { } else { mailMessage.CC.Add(new MailAddress(chaosong)); } //邮件标题。 mailMessage.Subject = subject; //邮件内容 mailMessage.Body = ""; //邮件内容。 //实例化一个SmtpClient类。 SmtpClient client = new SmtpClient(); //服务器端口 client.Port = port; //勤达邮箱服务器 client.Host = smtp; //使用安全加密连接。 client.EnableSsl = true; //不和请求一块发送。 client.UseDefaultCredentials = false; //验证发件人身份(发件人的邮箱,邮箱里的生成授权码); client.Credentials = new NetworkCredential(user, passw); //发送附件 mailMessage.Attachments.Add(new Attachment(xlsx)); try { client.Send(mailMessage); mailMessage.Dispose(); //关闭邮件使用的所有进程 return "send success"; } catch (Exception e) { string a = e.Message; mailMessage.Dispose(); //关闭邮件使用的所有进程 return "send error"; } }

弊端就是MailMessage没有邮件签名的方法

所以,可以在邮件内容中附加邮件签名

然后就涉及到一个问题,邮件内容附加图片怎么解决,不用担心,下面就是向邮件内容中添加图片的解决办法啦

//先将要处理的图片作为附件添加 System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment (@"C:\Users\Administrator\Desktop\fin_bg2.png"); message.Attachments.Add(attachment); //相当与邮件内容定义成html message.IsBodyHtml = true; //这边邮件的内容就可以用html标签(img)来插入图片 //attachment.contendid为附件固定的id //cid:邮件BASE64编码的某个位置.然后从这个位置上读图片的数据 message.Body += "";

 注意:

1:如果使用qq发送的话,会报错“mail from address must be same as authorization user”,

这里代码是没有错的,只是你的qq邮箱没有开启下面这两个服务:

此时进入到网页版QQ邮箱,邮箱首页旁边有个设置超链接,再点账户,翻到POP3/IMAP/SMTP/Exchange服务,把前两个勾打上保存一下就可以发邮件了!

这边会要求你发送一封短信,发送后,会给你一串类似密钥的东西,将你程序中的密码替换成它就行啦

2、这边使用换行可以用换行,但内容换行后,行间距会变得很大,可以调整行高度达到自己想要的效果,css:line-height:xxpx;

各邮箱端口号以及smtp服务器:

https://blog.csdn.net/u014449653/article/details/78816567

smtp 和pop3的区别

smtp可以理解成寄信的,而且大多数smtp服务器是免费的

而pop服务器则是用来收信的,而且每个Email地址只能有一个

有兴趣的小伙伴可以关注我的公众号哦~ 里面有很多自己平时积攒起来的学习资源,Python,web安全,前端,Java等,都是免费领取的

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有