2013-05-17 33 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對象的新實例)。 –

相關問題