c# - 作为内联 C# 添加页眉和页脚到电子邮件

标签 c# html email mailmessage

我的网站有两个图像页眉和页脚。

我正在向客户发送电子邮件。

我想将我的网站的页眉和页脚作为内联添加到电子邮件中。

在页眉和页脚之间,我想添加一些信息。

如何将解决方案资源管理器中的图像添加为电子邮件正文的内联图像。

 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);

最佳答案

您可以使用 AlternateView 将资源嵌入到 MailMessage 中。代码很容易理解。我假设 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# - 作为内联 C# 添加页眉和页脚到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924293/

相关文章:

Java 无法找到有效的证书

javascript - 尝试在 html 电子邮件中插入一个 ajax 调用

jquery - 使用 Jquery Cycle 暂停/恢复动画

html - IE7显示:block

javascript - Node.js javascript 和 html 脚本无法正常运行

C#生成一个随机的Md5 Hash

php - 在 PHP mail() 中使用信封发件人时避免 DMARC block

c# - 使用 FreeImage 库 (C#) 减少 PNG-8 调色板中的颜色计数

c# - 使用 GraphDiff 更新两个相关表中的数据

c# - 语言学习程序、单词识别和比较