如何使用 css 在电子邮件正文中发送网页

Posted

技术标签:

【中文标题】如何使用 css 在电子邮件正文中发送网页【英文标题】:How to send web page in email body with css 【发布时间】:2012-03-23 23:01:15 【问题描述】:

我正在使用 html 表格和 asp.net 标签在 asp.net 网页上创建报告。我必须在邮件正文中通过电子邮件发送完成的报告。我已经使用以下 c# 代码完成了此操作:

public bool SendEMail(List<string> emailList, string strSubject, string strMessage, bool isHTML)
    
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress(strFrom);
            //emailList is a list of email addresses to be sent to
            if (emailList != null && emailList.Count > 0)
                foreach (string em in emailList)
                
                    msg.To.Add(em);
                
            else
                return false;
            msg.Subject = strSubject;
            msg.Body = strMessage;
            msg.IsBodyHtml = isHTML;
            SmtpClient smtp = new SmtpClient(mailServer);
            smtp.Credentials = new System.Net.NetworkCredential(userName, usePass);
            smtp.Send(msg);
            msg.Dispose();
            return true;
        

这很好用,但它只能在每个控件的表单本身内单独设置样式。如何在 html 头或样式表中合并 css 集? 也可以包括皮肤吗?

【问题讨论】:

相关帖子 - Adding css in html that will be sent to an email, How to Inserting HTML and CSS web page in outlook email? & Can you link to a CSS file from an email? 【参考方案1】:

看看这张图表:

http://www.campaignmonitor.com/css/

我建议您使用内联样式而不是添加外部 css 表

【讨论】:

【参考方案2】:

样式化 html 电子邮件是一件很麻烦的事,每个客户端 (gmail/hotmail/outlook/yahoo) 都将自己的样式应用于某些高级元素。

一个好的经验法则是应用内联样式,例如:

<span style="display:block; background:red;">blah</span>

看看campaign monitor 看看哪些css 规则有效,看看litmus 如果你想摆脱测试的痛苦

【讨论】:

【参考方案3】:

这可以像在网页上设置 css 一样完成。在消息正文中,您可以使用完整的 html 文档,包括可以链接到外部样式表的 head 标签。只要 css 完全包含在文档中,或者链接中使用了完整的 URL,就可以了。

【讨论】:

如何从页面头部提取样式内容?【参考方案4】:

查看使用 AlternateViews 的实现,如果您使用样式动态生成电子邮件正文,这将对您有所帮助。

http://microsoft.com/....alterviews.aspx

【讨论】:

以上是关于如何使用 css 在电子邮件正文中发送网页的主要内容,如果未能解决你的问题,请参考以下文章

如何使用联系表格 7 在邮件正文中发送 HTML 内容?

如何使用 Blazor 和 NetCore 5 在电子邮件中将 razor 组件作为正文发送?

当我们使用 phpMailer 发送带有动态内容的邮件时,如何在电子邮件正文中显示多个内联图像

如何在 ASP.NET 中使用具有 HTML 正文 + 附件的 GMAIL API 发送电子邮件

在电子邮件正文中发送带有动态内容的图像

如何从电子邮件正文发送电子邮件?