我现在用Outlook做什么:
我收到产品的电子邮件订单。我在Outlook中选择一个或多个电子邮件(一个订单可以有多个与之关联的电子邮件),然后切换到我的Delphi编码的OrderManager程序并单击“导入”。它使用Outlook的COM自动化界面来读取每条消息的文本,解析并处理每条消息。
问题是,我可以使用Thunderbird代替吗? Thunderbird有COM接口吗?我必须使用Google搜索错误的关键字,因为我还没有找到任何内容。
顺便说一句,我确实有一个版本的OrderManager,它只是使用Indy从我的电子邮件服务器直接读取电子邮件,但出于几个原因,我想尝试从Firefox中读取它们。
非常感谢任何建议,文档链接或代码示例!
答案 0 :(得分:5)
检查此link。
您可以围绕XPCOM编写C或C ++包装器,然后在Delphi中使用该包装器。
还有一个开源XPCOM wrapper written in Delphi。您可能也想检查一下。感谢Stijn指出了这一点。
希望它有所帮助。
答案 1 :(得分:3)
您也可以自己解析Thunderbird的邮箱文件。
%APPDATA%\Thunderbird\profiles.ini
,阅读个人资料文件夹所在的位置(如果有多个个人资料,请查看Profile
0 部分Profile
n 为具有值Default=1
)Mail
和/或ImapMail
个子文件夹的每个子文件夹代表一个帐户(Mail
包含POP帐户,ImapMail
包含IMAP帐户); From
”开头的每一行都表示新邮件。使用X-Mozilla-Status
header确定邮件是否仍然有效,或者邮件是否已标记为删除。 (如果需要,可以使用CDO.Message
COM对象为您解析消息。你应该递归每个以'.sbd'结尾的子文件夹,因为它将包含该邮箱的子文件夹(例如Inbox.sbd
将包含收件箱下的邮件文件夹)。
但请注意文件锁定问题。