c#通过outlook 2013发送html电子邮件

时间:2017-02-15 10:33:43

标签: c# html outlook

我通过outlook发送了一个html。

在html中,我将一个单词向右对齐,但在收到的电子邮件中,这个单词是混合的 - 第一个字母已成为最后一个字母。

仅当第一个字母是数字时才会出现。

我发送了以下html:

<div dir="rtl" style="margin: 20px auto; width: 650px; text-align: center; font-family: Tahoma;">
  <table dir="rtl" style="width: 650px; margin: 0 auto; text-align: right; font-family: Tahoma; font-size: 0; font-weight: normal; color: #000;" cellspacing="0" cellpadding="0">
    <tbody>
      <tr>
        <td style="background-color: #d0f2f6; padding: 15px 20px; margin: 0; color: #135861; font-size: 13px; font-weight: 400;">
          שלום&nbsp;
          <br /><br />
          המספר הוא:<br />
          <b dir="rtl" style="font-family:consolas">1fD9xG8j</b>
          <br /><br />
        </td>
      </tr>
    </tbody>
  </table>
</div>

但我收到了以下邮件:

you can see the received mail here

为什么outlook会将'1fD9xG8j'改为'fD9xG8j1'?

这是发送邮件的c#中的代码:

var smtp = new SmtpClient(SmtpServer);
var message = new MailMessage();

message.Subject = subject.Trim();
message.Body = body.Trim();
message.IsBodyHtml = true;
message.BodyEncoding = Encoding.UTF8;

smtp.Send(message);

2 个答案:

答案 0 :(得分:2)

删除dir =&#34; rtl&#34;来自Table标签并尝试。

答案 1 :(得分:1)

我看到,很多时候,Outlook文本编辑器会在源代码中添加代码。发生这种情况是因为Outlook主要使用VML(矢量标记语言)生成电子邮件源代码,这会导致代码更改。有一些加载项可以将干净的HTML源代码导入到Outlook电子邮件中,以便正确显示它。

我尝试使用以下代码解决问题:

<div dir="ltr" style="font-family:consolas;font-weight:bold;text-align:right">1fD9xG8j</div>

我更改了dir =“ltr”,并添加了样式text-align:right, 它的工作原理!