【问题标题】:Saving emails to .eml file using specifiedPickupDirectory creates double decimal points in email body使用指定的PickupDirectory 将电子邮件保存到 .eml 文件会在电子邮件正文中创建双位小数点
【发布时间】:2012-09-17 20:06:02
【问题描述】:

我想验证保存到磁盘的 .eml 文件中的电子邮件正文内容。 我已将以下部分添加到我的 App.config 文件中:

<system.net>
    <mailSettings>
        <smtp deliveryMethod="SpecifiedPickupDirectory">
            <specifiedPickupDirectory pickupDirectoryLocation="d:\temp\emails\"/>
        </smtp>
    </mailSettings>
</system.net>

有时 .eml 文件中的某些正文内容保存不正确。 我有一些值用双小数点保存

例子:

ABC, XYZ, 2.00, 0..19609, 0.2117772

当我取出配置部分并将电子邮件发送到我的 Outlook 收件箱时,我没有收到此问题。 示例:

ABC, XYZ, 2.00, 0.19609, 0.2117772

正确和错误的值总是相同的。 我不希望保存文件会修改内容。 任何关于这里可能发生的事情的帮助将不胜感激。

【问题讨论】:

    标签: c# email save app-config decimal-point


    【解决方案1】:

    据我了解,这是意料之中的,因为生成的文件不应该是直接副本,而是遵循 rfc822 规范(参见 http://www.w3.org/Protocols/rfc822/3_Lexical.html)。

    如果您想将文件输出与输入进行比较,那么我认为您需要找到/编写一个例程来将 rfc822 解码回普通测试。

    【讨论】:

    • 感谢您的信息。知道这一点很有用,而且该规范似乎将小数点显示为特殊字符。我目前正在寻找一个 c# 例程来将 rfc822 解码回纯文本,如果有人知道的话。我注意到,当我在记事本中打开 .eml 文件时,以下标题设置为“Content-Type:text/plain; charset=us-ascii”。
    • 感谢您的链接。当我运行 Windows 7 时,我无法使用此链接中接受的答案作为解决方案。我实际上使用的是提到的 LumiSoft Mime 解析器,但这在 mimeEntity.DataText 属性中有双小数点问题。可能值得尝试链接中提到的不同 mime 解析器。
    • 我尝试在提供的链接 (Sasa) 中使用另一个 Mime 解析器并遇到同样的问题。我在没有任何运气的情况下寻找将 rfc822 解码回普通测试的代码 - 使用:codeproject.com/Articles/11380/… 当我用记事本打开 .eml 文件时,双小数点问题只出现在行的第一个字符是小数的值地方。示例:ABC, XYZ, 2.00, 0= ..19609, 0.2117772, 现在我求助于 hack (emailLineRead.Replace("..", ".")) 来消除意外行为,但这显然不是我的想做。
    • 也许我和我的 rfcs 搞混了。见stackoverflow.com/questions/6602318/…
    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2010-11-20
    • 2019-08-29
    • 1970-01-01
    • 2018-04-26
    相关资源
    最近更新 更多