日期:2014-05-19  浏览次数:20966 次

发邮件问题
我用MailMessage来发邮件,发现如果邮件某行的第一个字符是.(点),
在收到邮件时,这个点就会不见了,请问这是为什么?
例如:
mailBody是邮件的内容,是一段html
...
<style   type= "text/css ">
body   {background:   #FFFFFF;   }
.ebcopyright   {font:   12px   Arial,   Helvetica,   sans-serif;color:   #333333;}
.nav-supp   a   {color:   #3B6A02;text-decoration:   underline;}
</style>
...

MailMessage   myMail   =   new   MailMessage();
myMail.Body   =   mailBody;
myMail.BodyFormat   =   MailFormat.Html;
//...主题以及收件人等信息
Mail.SmtpMail.Send(myMail);

我收到邮件时发现邮件的内容好像没有用CSS一样,于是就看一下html源代码,发现收到的内容是这样的
...
...
<style   type= "text/css ">
body   {background:   #FFFFFF;   }
ebcopyright   {font:   12px   Arial,   Helvetica,   sans-serif;color:   #333333;}
nav-supp   a   {color:   #3B6A02;text-decoration:   underline;}
</style>
...

.ebcopyright变成了ebcopyright,.nav-supp变成了nav-supp

后来我把这一段css改成下面这样就正常
<style   type= "text/css ">
body   {background:   #FFFFFF;   }.ebcopyright   {font:   12px   Arial,   Helvetica,   sans-serif;color:   #333333;}.nav-supp   a   {color:   #3B6A02;text-decoration:   underline;}
</style>

就是说,只有在不用.(点)做行的开头第一个字符时才正常


------解决方案--------------------
会不会有mail.XXX屬性可以設置一下呢?
不解中,UP!!
------解决方案--------------------
我没装有.net1.X环境,没办法测试,我觉得很有可能是版本的原因.

在.net2.0下,MailMessage组件封装在using System.Net.Mail命名空间下,使用时没出现楼主说的丢(.)号的情况.

楼主可以换一个实现思路:不要做成独立的CSS,直接在相应的控件里写样式,如: <td style= "... "> ,把你的CSS写到控件的stype属性里.