C#发邮件主要涉及两个类:
- MailMessage:邮件内容(收发人地址,内容,标题等等)
- SmtpClient:邮件客户端(服务器,端口号,发送方式,发送动作,传入参数是MailMessage)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MailTest;
using System.Net;
using System.Net.Mail;
namespace MailTest
{
public class Program
{
static void Main(string[] args)
{
MailMessage msg = new MailMessage();//邮件信息类
msg.From = new MailAddress("xxx@xxx.com", "test", Encoding.UTF8);//实际发件人,显示发件人,编码
msg.To.Add("xxx@xxx.com");//收件人,这里可以对字符串处理,循环add收件人
msg.CC.Add("xxx@xxx.com");//抄送人,同上
msg.Subject = "test123";//邮件主题
msg.BodyEncoding = Encoding.UTF8;//邮件内容编码
msg.SubjectEncoding = Encoding.UTF8;//邮件主题编码
msg.IsBodyHtml = false;//是否是html格式,如果是,内容可以写成html样式
//msg.IsBodyHtml = true;//是否是html格式,如果是,内容可以写成html样式
//string filePath = "html路径";
//System.IO.StreamReader read = new System.IO.StreamReader(filePath, Encoding.UTF8);
//msg.Body = read.ReadToEnd();;//邮件内容
msg.Body = "加油,你是最胖的";
msg.Priority = MailPriority.High;//邮件优先级
SmtpClient client = new SmtpClient();//客户端smtp(这里没有进行初始化),初始化:SmtpClient("smtp.xxx.com")
client.DeliveryMethod = SmtpDeliveryMethod.Network;//指定邮件发送方式为网络
client.Host = "smtp.xxx.com";//定义客户端时没有初始化,这里要指定服务器
client.EnableSsl = false;//服务器支持安全连接,安全为true
client.UseDefaultCredentials = false;//是否随着请求一起发
client.Credentials = new NetworkCredential("xxx@xxx.com", "xxx");//用户名密码
try
{
client.Send(msg);
Console.WriteLine("Success");
}
catch (Exception)
{
Console.WriteLine("Failed");
}
}
}
}
这里可以对邮件内容,邮件客户端进行封装,从app.config获取,过滤。