Question

美味しい魚屋さん on Mon, 29 Jul 2019 08:13:25


お世話になっております。

ある場所からメールアドレスの文字列をとってきて、ポップアウトしないOutlookの宛先やCCにその文字列を代入したいと考えています。

現在、選択されているアイテムをExplorer.Selectionで取得し、そのMailItem.To, CC, BCCに文字列を代入してます。

ポップアウトしないOutlookの、返信や転送画面で文字列を代入しても、その画面上では宛先に文字列が代入されません。

しかし、破棄ボタンをおし、元の画面に戻すと、そのアイテム自体には、宛先やCCに文字列が代入されています。

返信や転送画面でも代入したメールアドレスが表示されるようにするには、どうすればいいでしょうか。

自分で書いていても、とても分かりずらい質問になっており、大変恐縮ですが教えていただけると幸いです。

宜しくお願いします。

Replies

gekka on Mon, 29 Jul 2019 12:09:51


Explore.Selectionから得られるMailItemは元になったMailItemです。

Explore.Selectionから取得ではなく、Inspector.CurrentItemからMailItemを取得しましょう。
あるいは[VSTO]Outlook 2016で返信時の本文の編集について(C#)のようにReply,ReplyAll,Forwardイベントで得られるMailItemでもいいです。

美味しい魚屋さん on Tue, 30 Jul 2019 01:28:50


gekkaさん、回答ありがとうございます。

質問の時、書いておらず申し訳ないですが、ポップアウトしない画面だとInspectorにnullが入ってしまいます。

そのためExplore.SelectionでMailItemをとってきてました。

Reply,ReplyAll,Forwardイベントでとりあえず実装してみたいと思います。

美味しい魚屋さん on Tue, 30 Jul 2019 10:28:03


ActiveInlineResponseをリフレクションで呼ぶことで解決しました。