使用 exchangelib 转发电子邮件

Forward email using exchangelib

我需要构建一个应用程序,在从交换服务器读取正文(和附件)后简单地转发电子邮件。 该应用程序在云中构建并在 python 中编码,因此我们认为我们会使用 exchangelib。

由于云架构,我的目标是转发电子邮件,最大限度地减少出口流量。

从 exchangelib source code(从第 778 行开始)我找到以下代码:

    def create_forward(self, subject, body, to_recipients, cc_recipients=None, bcc_recipients=None):
        if not self.account:
            raise ValueError('%s must have an account' % self.__class__.__name__)
        if not self.id:
            raise ValueError('%s must have an ID' % self.__class__.__name__)
        return ForwardItem(
            account=self.account,
            reference_item_id=ReferenceItemId(id=self.id, changekey=self.changekey),
            subject=subject,
            new_body=body,
            to_recipients=to_recipients,
            cc_recipients=cc_recipients,
            bcc_recipients=bcc_recipients,
        )

    def forward(self, subject, body, to_recipients, cc_recipients=None, bcc_recipients=None):
        self.create_forward(
            subject,
            body,
            to_recipients,
            cc_recipients,
            bcc_recipients,
        ).send()

我希望当我使用电子邮件消息(以前下载的)作为自己进行呼叫转发时,转发的消息从服务器而不是呼叫者那里获取有效负载。

希望我的问题很清楚...

提前致谢

EWS ForwardItem 服务不允许引用服务器端项目内容。您只能通过 HTTP 请求发送转发的内容。

附件有自己的 ID,因此您可以将原始附件附加到转发的项目中。