C#使用自带的Mail类借用第三方邮件服务器实现邮件的发送

Code first...

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Net;                               //需要.net framework 4.5+
 5 using System.Net.Mail;
 6 using System.Web;
 7 
 8 /// <summary>
 9 /// MyEmail3 的摘要说明
10 /// </summary>
11 namespace MailS
12 {
13     public class EmailS
14     {
15         /// <summary>
16         /// 邮件发送的主要方法
17         /// </summary>
18         /// <param name="tomail">收件人地址</param>
19         /// <param name="title">邮件标题</param>
20         /// <param name="body">邮件主体</param>
21         /// <returns></returns>
22         public static string SendingMail(string tomail, string title, string body)
23         {
24             string returnwords = "";
25             //这里是邮箱的smtp服务器地址,网易的是这个,其他邮箱可百度获得
26             string smtpService = "smtp.163.com";
27             //邮箱地址
28             string sendEmail = "*****@163.com";
29             //Attention Please!! 这里的密码不是你邮箱的登录密码,而是 客户端授权码 ,网易的是自己设置的,QQ的貌似是系统生成,可以自行看一下
30             string sendpwd = "*****";
31             32 
33 
34             //确定smtp服务器地址 实例化一个Smtp客户端
35             SmtpClient smtpclient = new SmtpClient();
36             smtpclient.Host = smtpService;
37             smtpclient.Port = 25;                //qq邮箱可以不用端口
38 
39             //确定发件地址与收件地址
40             MailAddress sendAddress = new MailAddress(sendEmail);
41             MailAddress receiveAddress = new MailAddress(tomail);
42 
43             //构造一个Email的Message对象 内容信息
44             MailMessage mailMessage = new MailMessage(sendAddress, receiveAddress);
45             mailMessage.Subject = title;
46             mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
47             mailMessage.Body = body;
48             mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
49 
50             //邮件发送方式  通过网络发送到smtp服务器
51             smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
52 
53             //如果服务器支持安全连接,则将安全连接设为true
54             smtpclient.EnableSsl = true;
55             try
56             {
57                 //是否使用默认凭据,若为false,则使用自定义的证书,就是下面的networkCredential实例对象
58                 smtpclient.UseDefaultCredentials = false;
59 
60                 //指定邮箱账号和密码,需要注意的是,这个密码是你在QQ邮箱设置里开启服务的时候给你的那个授权码
61                 NetworkCredential networkCredential = new NetworkCredential(sendEmail, sendpwd);
62                 smtpclient.Credentials = networkCredential;
63 
64                 //发送邮件
65                 smtpclient.Send(mailMessage);
66                 returnwords = "发送邮件成功";
67 
68             }
69             catch (SmtpException ex)
70             {
71                 returnwords = ("发送邮件出错");
72             }
73             return returnwords;
74         }
75     }
76 }

Tips:

1.本类中需要的System.Net包需要.NET Framework 4.5以上才可以支持,建议代码跑不起来了先升级一下自己项目的框架版本

2.本类并不是创建了一个邮件服务器,只是通过你提供的用户名和授权码,通过你的邮箱发邮件给指定账户

原文链接:https://www.cnblogs.com/AaronBear/p/8549648.html