将页眉和页脚作为内联 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】:

您可以使用AlternateViewMailMessage 中嵌入资源。代码很好理解。我假设fromuserName 是字符串,创建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”电子邮件通知编辑页眉和页脚

在 woocommerce 中自定义新帐户电子邮件模板

使用 OpenXML SDK 2.0 将页眉和页脚添加到现有的空 word 文档

如何在Excel中添加页眉页脚?

将导出查询作为带有页眉和页脚的文本访问

在 C# 中从 .docx 文件的页眉和页脚获取图像