记一个发HTML格式邮件的问题

很早做了一个自动发邮件的程序,前一向发现Notes升级后反而CSS样式都没有了。

起初不以为意,反正格式数据在,客户也没说啥,后来觉得这样的态度要不得,小洞不补,大洞吃苦。

于是查查资料,发现浏览器里显示正常的CSS在邮件客户端里未必正常显示,看来我中招了。

发邮件的程序大概有七个,只有一个CSS样式正常,于是就拿它和其它六个对比。再结合网上资料,发现是以下原因导致的:

1.邮件里的HTML代码不支持CSS短格式,需要一行行单写。

2.邮件里HTML代码不支持TR样式,如果需要间隔色,着重色需要设置到TD上。

修改完后,新的样式诞生了:

        sb.append("<style type="text/css">");
        sb.append(" body {");
        sb.append("    margin: 5px auto;");
        sb.append("    font-family: Arial;");
        sb.append("    font-size: 14px;");
        sb.append("    color: #444;");
        sb.append("}");
        sb.append("table{");
        sb.append("    margin:0px;");
        sb.append("    text-align: left;");
        sb.append("} ");
        sb.append("table caption{ ");
        sb.append("    text-align:center;");
        sb.append("} ");
        sb.append("table th{ ");
        sb.append("    background-color:#989898; ");
        sb.append("    color:#ffffff; ");
        sb.append("    text-align: center; ");
        sb.append("    padding:7px 10px; ");
        sb.append("    border-bottom:solid 1px #d2d1cb;");
        sb.append("}");
        sb.append("table tr td{ ");
        sb.append("    background:#fbfcfc;  ");
        sb.append("    border-bottom:solid 1px #e0e0e0; ");
        sb.append("    padding:8px 10px; ");
        sb.append("}");
        sb.append("table tr td.odd{ ");
        sb.append("    background:#f8f8f8; ");
        sb.append("}");
        sb.append("table tr td.aqua{ ");
        sb.append("    background:#ccffcc; ");
        sb.append("}");
        sb.append("table tr td.error{ ");
        sb.append("    background:#fdbf9a; ");
        sb.append("}");
        sb.append(" </style>");

显示效果比预订的在网页里调试的版本差不少,但那个在Notes里只有格式没样式像纯文本的效果,这个好歹在Notes里和网页里表现一致。

原文地址:https://www.cnblogs.com/heyang78/p/4566849.html