C#简单邮件复制运行,邮件发送功能;参考了很多文章,整合了下各个文章的功能和优化整合。
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Text;
using TestAPI.EMail;
namespace TestAPI
{
class Program
{
static void Main(string[] args)
{
//调用邮件发送方法
SendEmailUtil.NetSendEmail("邮件内容_您好!","邮件主题_问候","您的标题问候", "Recipient01@qq.com,Recipient01@163.com", "CC01@qq.com,CC02@qq.com", "Bcc@qq.com");
Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Text;
namespace TestAPI.EMail
{
public static class SendEmailUtil
{
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="strText">邮件文本内容</param>
/// <param name="strTheme">邮件主题</param>
/// <param name="strTitle">邮件标题</param>
/// <param name="strRecipient">收件人</param>
/// <param name="strCC">抄送人</param>
/// <param name="strBCC">密送人</param>
/// <param name="strFiles">附件本地路径</param>
/// <returns></returns>
public static string NetSendEmail(string strText, string strTheme, string strTitle, string strRecipient, string strCC = "", string strBCC = "", string strFiles = "")
{
try
{
string strResult = null;
SendMailParam model = new SendMailParam();
model.SendEmail = "addresser@163.com";//发件账户
model.SendPwd = "JBZN********GQYY";//发件账户密码,每个人不同,这里是163邮箱,需要去设置里添加
model.SendSetSmtp = "smtp.163.com";//发送的SMTP服务地址,每个邮箱的是不一样,根据发件人的邮箱来定
model.SendContent = strText;
model.ConsigneeTheme = strTheme;
model.ConsigneeTitle = strTitle;
model.ConsigneeAddress = strRecipient;
model.ConsigneeName = "";
model.CC = strCC;
model.BCC = strBCC;
model.Files = strFiles;
if (MailSend(model) == true)
{
Console.WriteLine("邮件发送成功!");
strResult = "邮件发送成功";
}
else
{
Console.WriteLine("邮件发送失败!");
strResult = "邮件发送失败";
}
return strResult;
}
catch (Exception ex)
{
return ex.Message;
}
}
public static bool MailSend(SendMailParam EPSModel)
{
try
{
//确定smtp服务器端的地址,实列化一个客户端smtp
System.Net.Mail.SmtpClient sendSmtpClient = new System.Net.Mail.SmtpClient(EPSModel.SendSetSmtp);//发件人的邮件服务器地址
System.Net.Mail.MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress(EPSModel.SendEmail, EPSModel.ConsigneeTitle, Encoding.UTF8);//发件人的邮件地址和收件人的标题、编码
mailMessage.To.Add(EPSModel.ConsigneeAddress);//收件人地址,支持多人接收
mailMessage.Subject = EPSModel.ConsigneeTheme;//邮件的主题
mailMessage.BodyEncoding = Encoding.UTF8;//编码
mailMessage.SubjectEncoding = Encoding.UTF8;//编码
mailMessage.Body = EPSModel.SendContent;//发件内容
mailMessage.IsBodyHtml = false;//获取或者设置指定邮件正文是否为html
mailMessage.Priority = MailPriority.High;//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
if (!string.IsNullOrWhiteSpace(EPSModel.CC))
{
mailMessage.CC.Add(EPSModel.CC);//添加抄送
}
if (!string.IsNullOrWhiteSpace(EPSModel.BCC))
{
mailMessage.Bcc.Add(EPSModel.BCC);//添加密送
}
if (!string.IsNullOrWhiteSpace(EPSModel.Files))
{
mailMessage.Attachments.Add(new Attachment(EPSModel.Files, System.Net.Mime.MediaTypeNames.Application.Rtf));//添加附件路径
//mailMessage.Attachments.Add(new Attachment(@"C:\Users\WuWei\Desktop\K2\Log\Files\CF10_Template.xlsx"));//可以多个添加
}
//设置邮件信息 (指定如何处理待发的电子邮件)
sendSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定如何发邮件 是以网络来发
sendSmtpClient.EnableSsl = false;//服务器支持安全接连,安全则为true
sendSmtpClient.UseDefaultCredentials = true; //false;//是否随着请求一起发
//用户登录信息
NetworkCredential myCredential = new NetworkCredential(EPSModel.SendEmail, EPSModel.SendPwd);
sendSmtpClient.Credentials = myCredential;//登录
sendSmtpClient.Send(mailMessage);//发邮件
return true;//发送成功
}
catch (Exception ex)
{
return false;//发送失败
}
}
}
public class SendMailParam
{
/// <summary>
/// 收件人的邮件地址
/// </summary>
public string ConsigneeAddress { get; set; }
/// <summary>
/// 收件人的名称
/// </summary>
public string ConsigneeName { get; set; }
/// <summary>
/// 收件人标题
/// </summary>
public string ConsigneeTitle { get; set; }
/// <summary>
/// 收件人的主题
/// </summary>
public string ConsigneeTheme { get; set; }
/// <summary>
/// 发件邮件服务器的Smtp设置
/// </summary>
public string SendSetSmtp { get; set; }
/// <summary>
/// 发件人的邮件
/// </summary>
public string SendEmail { get; set; }
/// <summary>
/// 发件人的邮件密码
/// </summary>
public string SendPwd { get; set; }
/// <summary>
/// 发件内容
/// </summary>
public string SendContent { get; set; }
/// <summary>
/// 抄送人
/// </summary>
public string CC { get; set; }
/// <summary>
/// 密抄送人
/// </summary>
public string BCC { get; set; }
/// <summary>
/// 附件
/// </summary>
public string Files { get; set; }
}
}
参考文章:
https://www.cnblogs.com/mingmingruyuedlut/archive/2011/10/14/2212255.html
https://blog.csdn.net/zwc0910/article/details/8299306
https://www.cnblogs.com/LikeNeng/p/3839815.html