1、发送邮件所需信息
(1)邮件服务器地址
(2)发件人邮箱账号
(3)发件人邮箱密码
2、发送邮件实现
public class EmailSendEntity
{
/// <summary>
/// 收件人的邮件地址
/// </summary>
public string ConsigneeAddress { get; set; }
/// <summary>
/// 收件人的名称
/// </summary>
public string ConsigneeName { get; set; }
/// <summary>
/// 收件人标题
/// </summary>
public string ConsigneeHand { get; set; }
/// <summary>
/// 收件人的主题
/// </summary>
public string ConsigneeTheme { get; set; }
/// <summary>
/// 发件邮件服务器的Smtp设置
/// </summary>
public string SendSetSmtp { get; set; }
/// <summary>
/// 发件人的邮件
/// </summary>
public string SendEmailAddress { get; set; }
/// <summary>
/// 发件人的邮件密码
/// </summary>
public string SendPwd { get; set; }
/// <summary>
/// 发件内容
/// </summary>
public string SendContent { get; set; }
}
/// <summary>
/// 邮件发送方法
/// </summary>
/// <param name="entity">邮件信息</param>
public bool SendEmail(EmailSendEntity entity)
{
try
{
//确定smtp服务器端的地址,实列化一个客户端smtp-发件人的邮件服务器地址
SmtpClient sendSmtpClient = new SmtpClient(entity.SendSetSmtp);
//构造一个发件的人的地址-发件人的邮件地址和收件人的标题、编码
MailAddress sendMailAddress = new MailAddress(entity.SendEmailAddress, entity.ConsigneeHand, Encoding.UTF8);
//构造一个收件的人的地址-收件人的邮件地址和收件人的名称和编码
MailAddress consigneeMailAddress = new MailAddress(entity.ConsigneeAddress, entity.ConsigneeName, Encoding.UTF8);
//构造一个Email对象-发件地址和收地址
MailMessage mailMessage = new MailMessage(sendMailAddress, consigneeMailAddress);
//邮件的主题
mailMessage.Subject = entity.ConsigneeTheme;
//邮件正文的编码
mailMessage.BodyEncoding = Encoding.UTF8;
//主题内容的编码
mailMessage.SubjectEncoding = Encoding.UTF8;
//邮件内容
mailMessage.Body = entity.SendContent;
//获取或者设置指定邮件正文是否为html格式
mailMessage.IsBodyHtml = false;
//设置邮件信息 (指定如何处理待发的电子邮件)
sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发
//服务器支持安全接连,安全则为true
sendSmtpClient.EnableSsl = true;
//是否随着请求一起发
sendSmtpClient.UseDefaultCredentials = false;
//用户登录信息
NetworkCredential myCredential = new NetworkCredential(entity.SendEmailAddress, entity.SendPwd);
//登录
sendSmtpClient.Credentials = myCredential;
object userState = mailMessage;
//发送邮件
sendSmtpClient.SendAsync(mailMessage, userState);
return true;
}
catch (Exception ex)
{
return false;
}
}
3、调用
public void SendEmailTest()
{
EmailSendEntity entity = new EmailSendEntity();
entity.SendEmailAddress = "xxxxxxxxx@sina.com";
entity.SendPwd = "xxxxxxxxxxx";
entity.SendSetSmtp = "smtp.sina.com";
entity.ConsigneeAddress = "xxxxxxxxxx@xxxx.com";
entity.ConsigneeHand = "测试邮件发送";
entity.ConsigneeName = "xxx";
entity.ConsigneeTheme = "主题:测试邮件发送";
entity.SendContent = "莫愁前路无知己,天下谁人不识君";
bool result = SendEmail(entity);
if (result)
{
MessageBox.Show("邮件发送成功!");
}
else
{
MessageBox.Show("邮件发送失败!");
}
}
4、结果