2013-05-17 35 views
1

我目前正在开发一个应用程序,可以自动处理邮箱的邮件。我们使用Outlook Redemption工具并将一个服务帐户连接到多个Exchange邮箱。使用Outlook Redemption从原始邮件地址转发RDOMail

案例

我们面对的是从原始邮箱转发邮件的问题。说服务帐户'A'正在处理共享邮箱'B'并且正在转发邮件。我希望发件人是'B'的邮件地址,但是当我收到邮件时,'A'的邮件地址显示为发件人。

的源代码

// Initialize the session with the service account. 
_session = new RDOSession(); 
_session.LogonExchangeMailbox(configurationSettings.MailAddress, configurationSettings.Url); 

// Connect to the target mailbox and retrieve mail message. 
RDOStore store = _session.Stores.GetSharedMailbox(targetMailBox); 
RDOMail originalMailItem = store.GetMessageFromID(entryId); 

// Creates a forwarded version of the mail. 
RDOMail forwardMailItem = originalMailItem.Forward(); 

// Set sender to target mailbox owner. 
if (store is RDOExchangeMailboxStore) 
{ 
    forwardMailItem.Sender = ((RDOExchangeMailboxStore)store).Owner; 
    forwardMailItem.SenderEmailAddress = targetMailBox; 
} 

// Set recipient and send. 
forwardMailItem.Recipients.Clear(); 
forwardMailItem.Recipients.Add(forwardMailAddress); 
forwardMailItem.Send(); 

问题

  • 任何人有一个解决方案的线索?
  • 如果这不起作用,是否可以在'代表'规则中获取'B'的邮件地址?

在此先感谢!

回答

1

问题是正在转发的邮件是在配置文件的主存储中创建的,而不是委托邮箱。

除了设置发件人属性之外,您是否还尝试过设置SentOnBehalfOf属性?

+0

感谢您的回复!我已经尝试设置该属性,但在这种情况下,似乎没有发送消息......没有任何错误。有没有什么方法可以在共享存储中创建转发的消息?谢谢!! –

+1

您可以保存Forward()返回的RDOMail对象,然后将其移动到共享邮箱(RDOMail.Move - 记住Move()返回您必须使用的RDOMail对象的新实例)。 –

相关问题