Fork me on GitHub

小工具:邮件发送

一、准备工作

1.要想编写一个发送邮件的小工具,首先得了解以下内容:

  • 收件人:这封邮件的接收人,邮件发送者沟通交流的对象。
  • 抄送:这封邮件的接收人,邮件发送者希望被抄送者了解邮件内容。
  • 密件抄送:这封邮件的接收人,与抄送的唯一区别就是它能够让各个收件人无法查看到这封邮件同时还发送给了哪些人。
  • 邮件主题:简述邮件内容。
  • 文本内容:邮件的主要内容。
  • 附件:与电子邮件附在一起传送至对方邮箱的文件。
  • 发件人:邮件的发送者。

2.其次是准备好一个邮箱,我们得对邮箱做一些设置。

本次采用163邮箱,因为用到了smtp协议,所以得保证这个邮箱的smtp服务是开启的。具体操作从以下文档得到http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html

3.除此之外,我们还需开通一个客户端授权密码:

到此我们的准备工作告一段落。

 

二、编写代码

 1.初始化一个邮件类并进行相应赋值

复制代码
 1         /// <summary>
 2         /// 邮件信息
 3         /// </summary>
 4         /// <returns></returns>
 5         private System.Net.Mail.MailMessage MailInfo()
 6         {
 7             System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
 8             //收件人
 9             message.To.Add("xxxxxx@qq.com");
10             //抄送
11             message.CC.Add("xxxxxxx@qq.com");
12             //密件抄送
13             message.Bcc.Add("xxxxxxxx@qq.com");
14             message.Subject = "邮件主题";
15             message.Body = "这里是邮件正文";
16             message.BodyEncoding = Encoding.UTF8;
17             message.Attachments.Add(new System.Net.Mail.Attachment("附件.txt"));
18             //优先级
19             message.Priority = System.Net.Mail.MailPriority.High;
20             //发件人
21             message.From = new System.Net.Mail.MailAddress("xxxxxxxx@qq.com");
22             return message;
23         }
复制代码

2.发送邮件

复制代码
 1         /// <summary>
 2         /// 发送邮件
 3         /// </summary>
 4         private void SmtpSend()
 5         {
 6             System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
 7             client.Host = "smtp.163.com";
 8             client.Port = 25;
 9             client.Credentials = new System.Net.NetworkCredential("xxxxxxxx@qq.com", "password");
10             client.EnableSsl = true;
11             client.DeliveryFormat = System.Net.Mail.SmtpDeliveryFormat.SevenBit;
12             client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
13             client.Send(MailInfo());
14         }
复制代码

三、半成品运行截图

 

 

 

posted @   LikeHeart  阅读(1759)  评论(4编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示