【问题标题】:Add header and footer to email as Inline C#将页眉和页脚作为内联 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);

【问题讨论】:

    标签: c# html email 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多