【问题标题】:create new emailmessage from received email in Exchange WebService API从 Exchange WebService API 中收到的电子邮件创建新的电子邮件
【发布时间】:2017-02-23 08:08:13
【问题描述】:

您好,我需要使用 EWS Microsoft Exchange WebService API 来重定向电子邮件。

基本上,该程序读取 Exchange 服务器上的电子邮件信箱,更改为新的 ToAddress、CC/BCC 地址并重新发送原始主题、电子邮件正文和所有附件。这听起来很容易,但我找不到简单的方法。

我搜索了 EWS API,看起来 emailMessage.Forward() 或 emailMessage.CreateForward() 是一个不错的选择。但是当我尝试它们时,它们实际上在新的电子邮件正文中添加了转发信息(即原始发件人、时间戳等),这是不希望的。

有人知道一个简单的方法吗?

或者我必须努力吗?创建一个新的 emailMessage 对象并从原始电子邮件对象中复制所有内容并发送新电子邮件?
感谢您提供此任务的任何示例代码!

谢谢 弗兰克

【问题讨论】:

    标签: email exchange-server exchangewebservices


    【解决方案1】:

    您尝试执行的操作在 EWS(或任何 Exchange 客户端 API)中不起作用,因为 Exchange 不允许您从与您的邮箱未关联的电子邮件地址重新发送邮件。例如,如果我向您发送一封电子邮件,而您只是更改 ToAddress 并尝试通过客户端 API 重新发送它,您将收到错误消息,因为您无权以我的身份发送(此时您实际上所做的是欺骗)。

    如果您想将邮件重定向或复制到其他收件人,那么创建传输规则https://technet.microsoft.com/en-us/library/aa998315(v=exchg.160).aspx 是一个更好的选择(这只是将另一个收件人添加到现有邮件中)。另一种方法是,如果您使用 EWS 获取消息的 MIMEContent,然后设置 X-Sender 和 X-Recipient 标头,然后使用集线器服务器上的重播目录https://technet.microsoft.com/en-us/library/bb124230(v=exchg.150).aspx 发送消息。这实际上允许您将另一个密件抄送添加到邮件中,并将其传递到另一个邮箱,而现有的标头完好无损。

    【讨论】:

    • 谢谢格伦!由于时间紧迫,我最终创建了新的 emailMessage 并手动将所有附件复制到新电子邮件中,更改了 To/CC 地址。有时间我会检查你的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2015-08-10
    • 2017-04-13
    • 2022-08-04
    相关资源
    最近更新 更多