【问题标题】:IMAP-Can not view contents in outlookIMAP-无法在 Outlook 中查看内容
【发布时间】:2013-05-31 03:33:31
【问题描述】:

我已经实现了一个 IMAP 客户端(使用 winsock 和 openssl),它可以从我的 GMail 帐户中获取电子邮件并将每个单独的电子邮件保存为 .eml 文件。但是,我无法使用 Outlook 查看内容。 我还尝试使用 EAgetmail 下载电子邮件,我可以在 Outlook 中查看它们。

http://imageshack.us/photo/my-images/16/eagetmail.png/?sa=0 "Eagetmail 在记事本中查看" http://postimg.org/image/ma635e0xx/ "Eagetmail 在 Outlook 中查看"

http://postimg.org/image/xo9piny5f/ "在记事本中查看了 Winsock"

http://postimg.org/image/oa8tvzo9v/ "winsock 在 Outlook 中查看"

我还尝试编辑 的内容,使其看起来与 Eagetmail 的内容相似,但仍然无法正常工作。但是,如果我复制并粘贴 EAgetmail 的全部内容,则可以在 Outlook 中查看。

【问题讨论】:

    标签: c++ outlook imap winsock


    【解决方案1】:

    实际文本看起来不错,即看起来像是正确的 MIME 格式。由于您可以剪切/粘贴它并使其加载正常,因此我怀疑在剪贴板上清除的文件的编码有问题。也许行结束?在粘贴前后使用十六进制编辑器查看它,看看有什么不同。

    【讨论】:

    • 感谢您的回复。你是对的,这是不同的行尾。我刚刚下载了十六进制编辑器并查看了 2 个文件的内容,我看到在 Eagetmail 的文件中,该行以 0x0D(回车)结尾,然后是 0x0A (新行)但是在我使用winsock获取的文件中,该行以2个连续的0x0d结尾,然后是0x0a,我认为这是导致outlook无法读取的原因。 postimg.org/image/slip111zv "Eagetmail" postimg.org/image/49s76cl3l "winsock" 我不知道如何解决这个问题,我基本上是获取 Gmail 给我的任何东西。
    • 从技术上讲,Outlook 应该能够查看带有 CR-CR-LF 的 MIME 文件,因为它基本上是一条以 CR 结尾的正常行。看起来它的 MIME 解码器很挑剔。在写出文件之前,解析来自 IMAP 服务器的响应以从行终止中删除额外的 CR 并不难。当你在做的时候,我也会检查缺少 CR 的情况(即仅 LF)。
    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多