目录
邮件发送
说明
本文主要说明如何用 C# 语言来写一个小功能————SMTP 邮件发送。并且本文中用的是网易126邮件服务器为例。
SMTP 协议
首先,发送邮件的前提是发送方需支持简单邮件传输协议( Simple Mail Transfer Protocol ),默认端口为25。
进入126网易邮箱,在上方的导航栏中可以看到“设置”一栏,点击后选择 POP3/SMTP/IMAP 进入设置页面。点击开启 SMTP 服务并保存即可(目前新申请的邮箱需要绑定手机号才可开启此功能)。
邮件服务器
常用的邮件服务器如下,只列出了一部分,具体可以去网上查询。
常用邮件服务器名 | POP3服务器地址 | SMTP服务器地址 |
---|---|---|
google.com | pop.gmail.com | smtp.gmail.com |
sina.com | pop3.sina.com.cn | smtp.sina.com.cn |
163.com | pop.163.com | smtp.163.com |
126.com | pop.126.com | smtp.126.com |
china.com | pop.china.com | smtp.china.com |
sohu.com | pop3.sohu.com | smtp.sohu.com |
yahoo.com | pop.mail.yahoo.com | smtp.mail.yahoo.com |
google.com | pop.gmail.com | smtp.gmail.com |
具体代码
首先引用两个命名空间
using System.Net;
using System.Net.Mail;
/// <summary>
/// 邮件发送
/// </summary>
/// <param name="toMail">收件人邮箱</param>
/// <param name="title">邮件标题</param>
/// <param name="body">邮件内容</param>
/// <param name="host">邮件服务器,例:"smtp.126.com"</param>
/// <param name="port">邮件服务器端口</param>
public void Send(string toMail, string title, string body, string host, int port)
{
MailAddress from = new MailAddress(发件人邮箱, 发件人名字);
// 设置收件人信箱,及显示名字
MailAddress to = new MailAddress(toMail, "admin");
// 创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to);
oMail.Subject = title; // 邮件标题
oMail.Body = body; // 邮件内容
oMail.IsBodyHtml = true; // 指定邮件格式,支持HTML格式
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); // 邮件采用的编码
oMail.Priority = MailPriority.High; // 设置邮件的优先级为高
// 发送邮件服务器
SmtpClient client = new SmtpClient();
client.Host = host; // 指定邮件服务器
client.Port = port; // 端口
client.Credentials = new NetworkCredential(发件人邮箱, 邮箱SMTP授权密码); // 指定服务器邮件,及邮箱SMTP授权密码
// 发送
try
{
client.Send(oMail); // 发送邮件
}
catch (Exception e)
{
...
}
}