获取已发送邮件的id

Posted

技术标签:

【中文标题】获取已发送邮件的id【英文标题】:Get id of sent mail 【发布时间】:2018-06-07 02:36:39 【问题描述】:

我目前正在使用msgraph-sdk-php,当我点击/me/sendMail 时,它不会返回任何信息(图形 API 文档已经说明)。

问题是我需要知道已发送邮件的 internetMessageId 或 Id,因为我使用 VSTO Outlook 插件,它需要该信息来跟踪所有已发送邮件,无论它是从 Outlook 客户端发送还是图形 API。

到目前为止,我尝试的是creating a Draft message,它将返回创建的消息信息(包括 Id、InternetMessageId),我将使用/me/messages/id/send 发送它。

但是,已发送邮件的 internetMessageId 与草稿文件夹中创建的不同,我认为这是正常的,因为它位于不同的文件夹中。

这就是我卡在atm的地方。

【问题讨论】:

我在这里解释了一个解决方案:***.com/questions/53861188/… 【参考方案1】:

问题解决了,不错。

我实际上做的是使用以下路由 /me/mailFolders/SentItems/messages 创建草稿消息,然后我可以简单地使用它的 Id 发送它,并且由于消息在发送时没有移动,它仍然具有相同的 InternetMessageId。

但是我有一个问题。发送邮件时,在 Outlook 桌面客户端上,邮件没有任何 Internet 标头(包含 InternetMessageId 的标头)。我希望这会一直存在,但显然对于外发邮件它不会被添加......

所以我无法在 Outlook VSTO 中找到这封邮件,因为当我在“已发送文件夹”中打开同一封邮件时,它根本没有标题。

【讨论】:

作为解决此问题的方法,我必须将 SingleValueLegacyExtendedProperty 添加到我的消息中,以便将 InternetMessageId 添加到已发送的项目中。这样我就可以在 Outlook 中检索它并执行我的业务逻辑。感觉很hackish,但找不到其他方法。作为扩展属性的示例,我使用了this

以上是关于获取已发送邮件的id的主要内容,如果未能解决你的问题,请参考以下文章

是否可以捕获使用 SmtpClient 发送的电子邮件的“消息 ID”?

在 Laravel 中发送电子邮件后在表格中设置“状态 = 已发送”

如何将 sendgrid webhook sg_message_id 关联到已发送邮件?

JavaMail获取已发送邮件

如何从已发送的电子邮件中检索(google api)

使用xampp从本地主机向特定的电子邮件ID发送电子邮件[重复]