在Exchange WebService API中从收到的电子邮件中创建新的emailmessage

时间:2016-10-14 02:20:31

标签: email exchange-server exchangewebservices

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

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

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

任何人都知道一种简单的方法吗?

还是我必须这么做?创建一个新的emailMessage对象并复制原始电子邮件对象中的所有内容并发送新电子邮件? 欢迎使用此任务的任何示例代码!

感谢 弗兰克

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作无法在EWS(或任何Exchange客户端API)中工作,因为Exchange不会让您从与您的邮箱无关的电子邮件地址重新发送邮件。例如,如果我向您发送电子邮件并且您只是更改ToAddress并尝试通过客户端API重新发送它,您将收到错误,因为您没有权利以我的身份发送(此时您基本上做的就是欺骗)。

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