记一个发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里和网页里表现一致。