【问题标题】:How to use Delphi to get email message text from Thunderbird如何使用 Delphi 从 Thunderbird 获取电子邮件文本
【发布时间】:2010-11-01 11:24:59
【问题描述】:

我现在用 Outlook 做什么:

我收到产品的电子邮件订单。我在 Outlook 中选择一个或多个电子邮件(一个订单可以有多个与之关联的电子邮件),然后切换到我的 Delphi 编码的 OrderManager 程序并单击“导入”。它使用 Outlook 的 COM 自动化接口来读取每封邮件的文本、解析和处理每封邮件。

问题是,我可以改用 Thunderbird 吗? Thunderbird 有 COM 接口吗?我一定是在谷歌上搜索错误的关键字,因为我还没有找到任何东西。

顺便说一句,我确实有一个 OrderManager 版本,它只是使用 Indy 直接从我的电子邮件服务器读取电子邮件,但出于几个原因,我想尝试从 Firefox 读取它们。

我们将不胜感激任何建议、文档链接或代码示例!

【问题讨论】:

    标签: delphi thunderbird


    【解决方案1】:

    检查这个link

    您可以围绕 XPCOM 编写 C 或 C++ 包装器,然后在 Delphi 中使用该包装器。

    还有一个开源的XPCOM wrapper written in Delphi。您可能也想检查一下。感谢Stijn 指出这一点。

    希望对你有帮助。

    【讨论】:

    【解决方案2】:

    您也可以自己解析 Thunderbird 的邮箱文件。

    • %APPDATA%\Thunderbird\profiles.ini,读取配置文件文件夹所在的位置(如果有多个配置文件,请查看部分Profile0..Profilen对于值 Default=1)
    • 配置文件文件夹的Mail 和/或ImapMail 子文件夹的每个子文件夹代表一个帐户(Mail 包含 POP 帐户,ImapMail 包含 IMAP 帐户);
    • 查看名称不以 .dat 或 .msf 结尾的所有文件,其内容以“From”(F、r、o、m 和空格)开头的文件。这些是mailbox files
    • 以“From ”开头的每一行都表示一条新消息。使用X-Mozilla-Status header 确定邮件是否仍然有效,或者是否已标记为删除。 (如果需要,您可以使用CDO.Message COM 对象为您解析消息)。

    您应该递归每个以“.sbd”结尾的子文件夹,因为这将包含该邮箱的子文件夹(例如,Inbox.sbd 将包含收件箱下的邮件文件夹)。

    不过,请注意文件锁定问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 2021-02-09
      • 1970-01-01
      相关资源
      最近更新 更多