2017-11-23 8 views
0

メールを再送信するために、Outlook 2016アドインに「再送信」コンテキストメニューを追加したいとします。必要に応じて元の電子メールを変更して「送信」ボタンを押してください。送信ボタンで編集可能であることを示すのではなく、元のメッセージ(またはMailItem.Copy()で作成されたコピー)のDisplay()を呼び出してメッセージを表示するだけで、メールのコピーを作成する必要があるようです。 再送信するOutlook電子メールの複製

は、私がこれまでに得た - かなりまっすぐ進む:添付ファイルをコピーしようとしたとき

 Outlook.MailItem clone = Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem; 
     clone.SendUsingAccount = email.SendUsingAccount; 
     clone.To = email.To; 
     clone.CC = email.CC; 
     clone.BCC = email.BCC; 
     clone.Subject = email.Subject; 
     clone.Body = email.Body; 
     clone.HTMLBody = email.HTMLBody; 
     for (int i = 1; i <= email.Attachments.Count; ++i) 
      clone.Attachments.Add(email.Attachments[i], email.Attachments[i].Type, email.Attachments[i].Position, email.Attachments[i].DisplayName); 

しかし、私はDISP_E_MEMBERNOTFOUNDエラーを取得しています。私は間違って何をしていますか?

答えて

1

Attachments.Addは、ファイルまたはOutlookアイテム(MailItemなど)への完全修飾パスを示す文字列だけを渡すことができます。また、コードでは受信者の表示名のみがコピーされることに注意してください。受信者の表示名は正常に解決される場合もあります。

OutlookオブジェクトモデルはMailItem.Copyメソッドを公開しますが、元のものと同じ送信済みまたは未送信の状態でコピーを作成します。

Redemptionを使用する場合は、RDOMailを使用できます。 CopyTo()メソッド - すべてのプロパティとサブオブジェクト(受信者や添付ファイルなど)をコピーしますが、MAPIではメッセージが初めて保存される前にしか設定できないため、送信された状態はそのままになります。私の頭の上オフ

 using Redemption; 
     ... 

     RDOSession session - new RDOSession(); 
     session.MAPIOBJECT = Globals.ThisAddIn.Application.Session.MAPIOBJECT; 
     RDOMail clone = session.GetDefaultFolder(rdoDefaultFolders.olFolderDrafts).Items.Add(); 
     RDOMail original = (RDOMail)session.GetRDOObjectFromOutlookObject(email); 
     original.CopyTo(clone); 
     clone.Save(); 
     MailItem OutlookClone = Globals.ThisAddIn.Application.Session.GetItemFromID(clone.EntryID); 
     OutlookClone.Display() 
+0

これは、1つは、ローカル(一時)ファイルに保存し、再接続する必要があります添付ファイルをコピーするプログラム的にのように見えますか? MailItem.Copy()の電子メールを送信できるように、送信された電子メールの '送信済み'フィールド/プロパティをリセットする方法はありませんか? – Jimmy

+1

いいえ、添付ファイルを再追加しても、コピーする必要があるその他の添付ファイルのプロパティがあります。例えば。 HTML画像添付ファイルの場合は、添付ファイルのcontents-idをコピーする必要があります.HTML本体では画像は表示されません。 –

関連する問題