繁体   English   中英

如何使用Delphi从Thunderbird获取电子邮件消息

[英]How to use Delphi to get email message text from Thunderbird

我现在用Outlook做什么:

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

问题是,我可以使用Thunderbird代替吗? Thunderbird有COM接口吗? 我必须使用Google搜索错误的关键字,因为我还没有找到任何内容。

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

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

检查此链接

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

还有一个用Delphi编写的开源XPCOM包装器 您可能也想检查一下。 感谢Stijn指出这一点。

希望能帮助到你。

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

  • %APPDATA%\\Thunderbird\\profiles.ini ,读取配置文件文件夹所在的位置(如果有多个配置文件,请查看Profile 0Profile n ,以获取值为Default=1
  • 配置文件文件夹的Mail和/或ImapMail子文件夹的每个子文件夹代表一个帐户( Mail包含POP帐户, ImapMail包含IMAP帐户);
  • 通过看他们的名字不.DAT或.msf, 并且其内容以“从”(F,R,O,M和空格)结尾的所有文件。 那些是邮箱文件
  • 以“ From ”开头的每一行都表示一条新消息。 使用X-Mozilla-Status标头来确定消息是否仍然有效,或者是否已将其标记为删除。 (如果需要,可以使用CDO.Message COM对象为您解析消息)。

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

但是要小心文件锁定问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM