将页眉和页脚作为内联 C# 添加到电子邮件
Posted
技术标签:
【中文标题】将页眉和页脚作为内联 C# 添加到电子邮件【英文标题】:Add header and footer to email as Inline C# 【发布时间】:2015-12-31 16:11:42 【问题描述】:我的网站有两张图片页眉和页脚。
我正在向客户发送电子邮件。
我想将我的网站的页眉和页脚作为内联添加到电子邮件中。
在页眉和页脚之间,我想添加一些信息。
如何将解决方案资源管理器中的图像作为内联添加到电子邮件正文中。
var mailMessage = new MailMessage(from, userName, subject, emailBody) IsBodyhtml = true ;
var emailClient = new SmtpClient
EnableSsl = useSsl.ToLower().Contains("true"),
Credentials = new NetworkCredential(emailLoginUser, emailLoginPassword),
Host = smtpServerUrl,
Port = int.Parse(smtpServerPort)
;
emailClient.Send(mailMessage);
【问题讨论】:
【参考方案1】:您可以使用AlternateView
在MailMessage
中嵌入资源。代码很好理解。我假设from
和userName
是字符串,创建MailAddress
的实例:
public static void SendMail(string from, string userName, string subject, string emailBody)
string htmlBody = string.Format("<html><body><img src=\"cid:Header\" /><br />0<br /><img src=\"cid:Footer\" /></body></html>", emailBody);
AlternateView avHtml = AlternateView.CreateAlternateViewFromString(htmlBody, Encoding.Default, MediaTypeNames.Text.Html);
// Create a LinkedResource object for each embedded image
LinkedResource header = new LinkedResource("Header.jpg", MediaTypeNames.Image.Jpeg);
header.ContentId = "Header";
LinkedResource footer = new LinkedResource("Footer.jpg", MediaTypeNames.Image.Jpeg);
header.ContentId = "Footer";
avHtml.LinkedResources.Add(header);
avHtml.LinkedResources.Add(footer);
// Add the alternate views instead of using MailMessage.Body
var mailMessage = new MailMessage();
mailMessage.From = new MailAddress(from);
mailMessage.To.Add(new MailAddress(userName));
mailMessage.Subject = subject;
mailMessage.AlternateViews.Add(avHtml);
// Address and send the message
var emailClient = new SmtpClient
EnableSsl = useSsl.ToLower().Contains("true"),
Credentials = new NetworkCredential(emailLoginUser, emailLoginPassword),
Host = smtpServerUrl,
Port = int.Parse(smtpServerPort)
;
emailClient.Send(mailMessage);
【讨论】:
以上是关于将页眉和页脚作为内联 C# 添加到电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
仅为 WooCommerce 中的“customer-on-hold-order”电子邮件通知编辑页眉和页脚