关于POP3/SMTP:POP3 用于接收电子邮件 ,SMTP 用于发送电子邮件。
POP3:
POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
SMTP:
SMTP的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
下面以QQ邮箱为发送方发送邮件:
public class Program
{
public static void Main(string[] args)
{
string mailTo = "***************************t"; //接收方
string mailSubject = "Send Email Test"; //邮件主题
string mailContent = "<html><body><div><font color='blue'>This is a email for Send Email Test</font></div></body></html>"; //邮件内容
SendEmail(mailTo, mailSubject, mailContent);
}
public static bool SendEmail(string mailTo, string mailSubject, string mailContent)
{
//设置发送方的邮件信息,使用最常见的qq邮箱
string smtpServer = "smtp.qq.com"; //SMTP服务器
string mailFrom = "664660754@qq.com"; //登陆用户名
string userPassword = "****************"; //SMTP授权码,这里会有人误解为邮箱的密码,其实是授权码,具体看下面获取授权码操作
//邮件服务设置
SmtpClient smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //邮件发送方式
smtpClient.Host = smtpServer; //SMTP服务器
smtpClient.Port = 587; //qq邮箱SMTP发送端口,可以不填
smtpClient.EnableSsl = true; //qq邮箱SMTP SSL加密,可以不填
smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword); //用户名和密码
//发送邮件设置
MailMessage mailMessage = new MailMessage(mailFrom, mailTo); //发送人和收件人
mailMessage.Subject = mailSubject; //邮件主题
mailMessage.Body = mailContent; //邮件内容
mailMessage.BodyEncoding = Encoding.UTF8; //邮件正文编码
mailMessage.IsBodyHtml = true; //设置为HTML格式
mailMessage.Priority = MailPriority.Low; //优先级,可不填
try
{
smtpClient.Send(mailMessage); //发送邮件
return true;
}
catch (SmtpException e)
{
return false;
}
}
}
QQ邮箱获取授权码操作:
1.登录网页端QQ邮箱,找到邮箱设置,进入其中的账户页面,如下图:
打开POP3/SMTP 服务后,点击生成授权码即可。
2.这里不仅仅是QQ邮箱需要授权码,其他邮箱作为发送方也是如此。 (注意)
源码:https://github.com/wangqilong1225/C-Sharp-Test/tree/master/BaseDemo/EmailDemo