【问题标题】:Extra space added automatically at the end of each line in email在电子邮件的每一行末尾自动添加额外的空间
【发布时间】:2014-04-25 10:00:18
【问题描述】:

我正在使用 C# 通过 SMTP 发送电子邮件。电子邮件为 HTML 格式。

我使用以下代码创建消息正文。

objMailMsg = new System.Text.StringBuilder();
objMailMsg.Append("<div style='margin: 20px;'>");
objMailMsg.Append("Welcome,");
objMailMsg.Append("<br /><br />Your User Name is     ");
objMailMsg.Append(emailid);
objMailMsg.Append("<br /><br />Password is     ");
objMailMsg.Append(password + "</div>");
objmail.MailMessage = objMailMsg.ToString();

生成的电子邮件将如下所示

欢迎,

您的用户名是用户名。

密码是 7x*NG9p%2_

问题是当我尝试复制密码时,当我从 Outlook 2003 打开这封电子邮件时,它还会复制最后自动添加的额外空间(在这种情况下代替 _)。 以前,此代码在电子邮件内容周围没有“div”。 添加“div”为 Outlook 2003 解决了这个问题。

我现在已将 Outlook 升级到 2013,这个问题又回来了。

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

    标签: c# html email outlook


    【解决方案1】:

    你用过String.Trim()

    密码.Trim() 删除所有前导和尾随空白字符。

    【讨论】:

    • 密码后面没有空格。它是自动生成的。 Outlook 会在每行的最后一个单词后添加空格,同时自行格式化。
    • p {margin: 1em 0;} 把这个放在你的header style标签中,并在你的html中使用p标签实际上p标签是在渲染时插入的,你需要在style标签中覆盖它。跨度>
    • 感谢马拉的意见。我至少现在已经解决了这个问题。我使用了 TABLE 而不是 DIV。我也会尝试你所说的方法,并会发布结果。
    【解决方案2】:

    正如我在对先前答案的评论中所述。至少现在我已经通过使用 TABLE 而不是 DIV 解决了这个问题。

    当我使用 Outlook 2003 阅读邮件时,可以使用 DIV,现在我拥有 Outlook 2013。 两者都使用不同的渲染引擎 IE6 渲染引擎用于 Outlook 2003,而 MS Word 用于 Outlook 2007 及更高版本,对 HTML 的支持有限。

    我不知道这是否可以被视为答案,但我觉得我应该分享我的发现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-08
      • 2017-01-21
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多