如何使用 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 在电子邮件正文中发送网页的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Blazor 和 NetCore 5 在电子邮件中将 razor 组件作为正文发送?
当我们使用 phpMailer 发送带有动态内容的邮件时,如何在电子邮件正文中显示多个内联图像