/// <summary> /// 加载邮件模板 /// </summary> /// <param name="TempPath">C:\Users\Administrator\Documents\模板.html</param> /// <param name="Params">模板参数</param> /// <returns></returns> public static string GetEmailHtml(string TempPath, string[] Params) { string BodyHtml = ""; #region 读取模板内容,拼接邮件内容 using (System.IO.StreamReader sr = new System.IO.StreamReader(TempPath, Encoding.UTF8, true)) { BodyHtml = sr.ReadToEnd(); } //拼接邮件内容 return string.Format(BodyHtml, Params); #endregion } /// <summary> /// 发送邮件 /// </summary> /// <param name="Subject">主题</param> /// <param name="Body">内容</param> /// <param name="DisplayName">描述:可以填写公司名称</param> /// <param name="ToEmails">接受邮箱</param> /// <param name="BCC">抄送邮箱</param> /// <param name="FilePaths">附件</param> public static void SendEamil(string Subject, string Body, string DisplayName, string[] ToEmails, string[] BCC, string[] FilePaths, bool IsBodyHtml = true) { string host = ConfigurationManager.AppSettings["email_host"];//smtp.qq.com QQ邮箱的 string port = ConfigurationManager.AppSettings["email_port"];//端口号 QQ邮箱使用587 string email_fromEmail = ConfigurationManager.AppSettings["email_fromEmail"];//发送的邮箱号 string email_shouQuanMa = ConfigurationManager.AppSettings["email_shouQuanMa"];////授权码需要在 邮箱里面 设置-账户 -POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务那边获取 try { using (var client = new SmtpClient(host, Convert.ToInt32(port))) using (var mailMessage = new MailMessage()) { client.UseDefaultCredentials = false; //dasavnftbbaksibhjj client.Credentials = new NetworkCredential(email_fromEmail, email_shouQuanMa); //发送人 mailMessage.From = new MailAddress(email_fromEmail, DisplayName); //接收人 foreach (string email in ToEmails) { mailMessage.To.Add(new MailAddress(email)); } //抄送人 if (BCC != null) { foreach (string email in BCC) { mailMessage.Bcc.Add(new MailAddress(email)); } } mailMessage.Body = Body; mailMessage.IsBodyHtml = IsBodyHtml; mailMessage.Subject = Subject; //附件内容 foreach (string FilePath in FilePaths) { Attachment attachment1 = new Attachment(FilePath);//默认文件名称就是附件名称 mailMessage.Attachments.Add(attachment1); } //Stream stream = File.OpenRead(@"C:\Users\Administrator\Documents\发布流程(1).pdf");//这个是需要填写附件名称得 //附件内容 //Attachment attachment2 = new Attachment(stream, "2.pdf"); //mailMessage.Attachments.Add(attachment2); SaveLog($"发送邮件!!ToEmails:{string.Join(",", ToEmails)}", 0, "error"); client.SendMailAsync(mailMessage).GetAwaiter().GetResult(); } } catch (Exception ex) { SaveLog($"发送邮件失败了!!host:{host},port:{port},email_fromEmail:{email_fromEmail},email_shouQuanMa:{email_shouQuanMa},ToEmails:{string.Join(",", ToEmails)},FilePaths:{string.Join(",", FilePaths)}详细信息::" + ex, 0, "error"); } }