Host 发件人邮箱服务器地址,比如企业微信的SMTP协议地址smtp.exmail.qq.com,大厂的网上都能查到。
SendMailHost服务器端口号,大部分都是默认25,还有要注意如果是购买的服务器这需要注意端口是否可以使用,而且邮件发送过于频繁可能会导致官方自行停用服务器的端口。
Subject邮件主题。
我做的发送邮件是多次发送的,会生成Excel文件作为附件发送(这里没有放进去);会出现
生成的文件名一致的情况,这种情况程序会删除原来的文件重新生成,所以需要清除文件占用。
string errMessage="";//日志
errMessage += string.Format("开始设置邮件格式\r\n", DateTime.Now);
SmtpClient client = new SmtpClient();
client.Host = Host;
client.Port = Convert.ToInt32(SendMailHost);
client.UseDefaultCredentials = false;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new System.Net.NetworkCredential(Sender, Password);//发送人邮箱密码
System.Net.Mail.MailMessage message = new MailMessage();
message.From = new MailAddress(Sender);
//client.EnableSsl = true;
//client.UseDefaultCredentials = true;
string[] emails = UserName.Split(';');
message.To.Add("收件人邮箱");//收件人
message.CC.Add("抄袭人邮箱");//抄写人
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
errMessage += string.Format("开始设置邮件内容\r\n", DateTime.Now);
if (File.Exists(Files))//文件是否存在
{
Attachment data = new Attachment(Files, MediaTypeNames.Application.Octet);
message.Attachments.Add(data);
}
message.Priority = MailPriority.High;
message.Body = string.Format(@"邮件内容");
client.Send(message);
message.Attachments.Dispose();//解决发送邮件后附件被占用问题
errMessage += DateTime.Now + string.Format("邮件发送完成;\r\n\r\n");
Microsoft.Office.Interop.Excel.Application execelApp = new Microsoft.Office.Interop.Excel.Application();
KillExcel(execelApp);//解除EXcel文件占用