C# 乱码html电子邮件

C# 乱码html电子邮件,c#,email,C#,Email,我正在使用.net framework 4.0,使用以下代码发送以下html内容(粘贴在下面): public void sendHTMLMessage() { From = constants.GetValue(EnvironmentVariables.ConstantNames.EMAILFROM); MailMessage mail = SetMailMessageParameters(); smpt = new SmtpC

我正在使用.net framework 4.0,使用以下代码发送以下html内容(粘贴在下面):

    public void sendHTMLMessage() 
    {
        From = constants.GetValue(EnvironmentVariables.ConstantNames.EMAILFROM);
        MailMessage mail = SetMailMessageParameters();
        smpt = new SmtpClient(constants.GetValue(EnvironmentVariables.ConstantNames.SMTP));
        Utils.EnvironmentLogger.WriteToMessageLog("Sending email message: " + Subject);

        smpt.Send(mail);

    }
    private MailMessage SetMailMessageParameters()
    {

        MailMessage mail = new MailMessage();
        mail.Subject = Subject;
        mail.Body = Body;
        mail.IsBodyHtml = true;
        mail.From = new MailAddress(From);
        List<string> ToArray = Utils.GetArrayFromConstantsClass(To);
        foreach (string element in ToArray)
        {
             mail.To.Add(new MailAddress(element));
        }
        if (!string.IsNullOrEmpty(Attachment))
        {
            mail.Attachments.Add(new Attachment(Attachment));
        }
        return mail;
    }
以下是HTML文件的内容:

<html>
    <head>
        <title>HTML Table Email Test</title>
    </head>
        <style type="text/css">

        body
        {

            font-family:  Arial, Helvetica, Univers;
            font-size: 10pt;
            font-style: normal;
            font-weight: normal;
            line-height: 12pt;
            text-align: left;
        }

        b
        {
            font-weight: bold;
        }

    table
    {
        border-collapse: collapse;
    }

    div.tableContainer
    {
        font-size: 8pt;
        width: 100%;
        overflow: auto;
    }

    div.tableContainer th
    {
        font-size: 8pt;
        font-weight: normal;
        text-decoration: underline;
        text-align: center;
        background-color: #BBC3E2;
        color: #000000;
        border-color: #808080;
        border-style: solid;
        border-width: 1px;
        position: relative;
        padding-right: 3;
        padding-left: 3;
        cursor: default;
    }

    div.tableContainer td
    {
        font-size: 9pt;
        text-align: right;
        white-space: nowrap;
        background-color: #F1EEE3;
        color: #000000;
        border-color: #808080;
        border-style: solid;
        border-width: 1px;
        position: relative;
        padding-right: 3px;
        padding-left: 3px;
    }

    div.tableContainer td.locked, div.tableContainer th.locked
    {
        background-color: #BBC3E2;
        text-align: left;
        color: #000000;
        position: relative;
        text-decoration: none;
    }

    div.tableContainer tr.total
    {
    font-weight: bold;
    }

        </style>
    <body>

    <div class="tableContainer" id="data">
Day<br>Sales<br>Details<br><br>
<table border="0" cellspacing="0" cellpadding="0" style="width: auto">
<tbody>
<tr><th class="locked">&nbsp;</th><th>Value<br>1</th><th>Value<br>2</th><th>VAlue<br>3</th><th>Value</th><th>Value</th><th>Value</th><th>Value<br>value</th><th>value<br>value</th><th>value<br>$</th><th>value<br>value</th></tr>
<tr><td class="locked">-Line1</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>0</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line2</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>2</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>####</td><td>0.0</td><td>3</td><td>0.0</td><td>0%</td><td>11</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>6</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>4</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>-</td><td>0.0</td><td>0</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>2</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>7</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>8</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>8</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="locked"><b>Line3</b></td><td><b>0.0</b></td><td><b>0.0</b></td><td><b>0.0</b></td><td><b>0%</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0%</b></td></tr>

</tbody>
</table>
Day<br>Sales<br>Details<br><br>
<table border="0" cellspacing="0" cellpadding="0" style="width: auto">
<tbody>
<tr><th class="locked">&nbsp;</th><th>Value<br>1</th><th>Value<br>2</th><th>VAlue<br>3</th><th>Value</th><th>Value</th><th>Value</th><th>Value<br>value</th><th>value<br>value</th><th>value<br>$</th><th>value<br>value</th></tr>
<tr><td class="locked">-Line1</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>0</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line2</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>2</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">--Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>####</td><td>0.0</td><td>3</td><td>0.0</td><td>0%</td><td>11</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>6</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>4</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>-</td><td>0.0</td><td>0</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>2</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>1</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">-Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>7</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>8</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">Line3</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0%</td><td>0.0</td><td>8</td><td>0.0</td><td>0%</td><td>0</td><td>0%</td></tr>
<tr><td class="locked">&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="locked"><b>Line3</b></td><td><b>0.0</b></td><td><b>0.0</b></td><td><b>0.0</b></td><td><b>0%</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0</b></td><td><b>0%</b></td></tr>

</tbody>
</table>

<br>data is effective for close of previous business day<br>
</div>

</body>
</html>

HTML表格电子邮件测试
身体
{
字体系列:Arial、Helvetica、Univers;
字号:10pt;
字体风格:普通;
字体大小:正常;
线高:12pt;
文本对齐:左对齐;
}
B
{
字体大小:粗体;
}
桌子
{
边界塌陷:塌陷;
}
桌子容器
{
字号:8pt;
宽度:100%;
溢出:自动;
}
桌子区
{
字号:8pt;
字体大小:正常;
文字装饰:下划线;
文本对齐:居中;
背景色:#BBC3E2;
颜色:#000000;
边框颜色:#808080;
边框样式:实心;
边框宽度:1px;
位置:相对位置;
右:3;
左:3;
游标:默认值;
}
桌子货柜部
{
字号:9pt;
文本对齐:右对齐;
空白:nowrap;
背景色:#F1EEE3;
颜色:#000000;
边框颜色:#808080;
边框样式:实心;
边框宽度:1px;
位置:相对位置;
右侧填充:3px;
左:3倍;
}
div.tableContainer td.locked,div.tableContainer th.locked
{
背景色:#BBC3E2;
文本对齐:左对齐;
颜色:#000000;
位置:相对位置;
文字装饰:无;
}
表2.2.1分类容器tr.总计
{
字体大小:粗体;
}
日
销售
详细信息

Value
1Value
2VAlue
3value
valuevalue
valuevalue
valuevalue
$Value
Value -行10.00.00.00%0.000.00%00% --行20.00.00.00%0.020.00%00% --行30.00.00.00%0.010.00%00% --行30.00.00.0####0.030.00%110% -行30.00.00.00%0.060.00%00% -行30.00.00.00%0.040.00%00% -行30.00.00.0-0.000.00%00% 行30.00.00.00%0.010.00%00% 行30.00.00.00%0.020.00%00% -行30.00.00.00%0.010.00%00% -行30.00.00.00%0.070.00%00% 行30.00.00.00%0.080.00%00% 行30.00.00.00%0.080.00%00% 行30.00.00.00%000000% 日
销售
详细信息

Value
1Value
2VAlue
3value
valuevalue
valuevalue
valuevalue
$Value
Value -行10.00.00.00%0.000.00%00% --行20.00.00.00%0.020.00%00% --行30.00.00.00%0.010.00%00% --行30.00.00.0####0.030.00%110% -行30.00.00.00%0.060.00%00% -行30.00.00.00%0.040.00%00% -行30.00.00.0-0.000.00%00% 行30.00.00.00%0.010.00%00% 行30.00.00.00%0.020.00%00% -行30.00.00.00%0.010.00%00% -行30.00.00.00%0.070.00%00% 行30.00.00.00%0.080.00%00% 行30.00.00.00%0.080.00%00% 行30.00.00.00%000000%
数据在前一个工作日结束时有效
问题出在这里:

Content-Encoding: gzip
某物;您的ISP,POP服务器,甚至可能是
SmtpClient.Send
正在压缩HTTP负载。这在HTTP中是允许的。从
服务器:Apache/2.2.21(CentOS)
我怀疑是HTTP服务器

任何兼容的HTTP客户端在接收到此头时都应该取消GZip有效负载。标准的.NET
HttpClient
类将完成此操作


什么是“接收”电子邮件?你写的程序?它必须取消GZip有效负载。或者联系您的服务器管理员,看看是否有办法告诉它不要GZip大型有效负载。

谢谢大家的帮助。我发现了导致问题的原因,尽管我不确定为什么这样可以解决问题。当我将代码更改为使用七位编码时,它会毫无问题地发送电子邮件。我很想听听为什么这样可以解决这个问题。感觉像是创可贴。这一定与交换有关。也不知道为什么我在没有发送附件的情况下收到了乱码文本。以下是要修复的代码:

            Attachment attachment = new Attachment(this.Attachment);
            attachment.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
            mail.Attachments.Add(attachment);

在Fiddler或数据包嗅探器中捕获您的电子邮件,并告诉我们HTTP头。我下载了Fiddler,但无法让它查看我正在发送/接收的电子邮件。我以前从未用过这个工具。捕获我所有的浏览器活动似乎效果不错,但当我发送电子邮件时,什么也得不到。我是否需要调整一些设置才能看到发送的电子邮件?Fiddler是一个浏览器插件;您必须在web浏览器中打开电子邮件。好的,我添加了上面的标题,希望能有所帮助。随机文本对我来说似乎是Base64编码的,这是附件发送的格式,请尝试删除附件,看看是否有效。如果是,您可能需要检查如何发送附件。我正在通过连接到exchange服务器的outlook接收电子邮件。我无法使用fiddler捕获进入服务器的消息,因此我将其放在centos服务器上,并通过IE打开。因此我不确定gzip是否适用。不过,现在对我来说,这确实是一个未知的领域。
            Attachment attachment = new Attachment(this.Attachment);
            attachment.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
            mail.Attachments.Add(attachment);