【问题标题】:How to send web page in email body with css如何使用 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 集? 也可以包括皮肤吗?

【问题讨论】:

标签: c# asp.net html css 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 2021-08-12
        • 2013-01-16
        • 2010-11-12
        • 2022-12-28
        相关资源
        最近更新 更多