2016-11-23 13 views
0
private void CreateEmailItem() 
{ 
    Object selObject = this.Application.ActiveExplorer().Selection[1]; 
    string sendernames = (selObject as Outlook._MailItem).SenderName; 
    Outlook._MailItem eMail = (Outlook._MailItem) 
    this.Application.CreateItem(Outlook.OlItemType.olMailItem); 
    eMail = selObject as Outlook._MailItem; 
    ((Outlook._MailItem)eMail).Body = "Approved"; 
    ((Outlook._MailItem)eMail).ReplyAll(); 
} 

代わりに((Outlook._MailItem)eMail).Send();を使用すると、 ReplyAll()関数を使用している間は動作しません。Microsoft OutlookでReplyAll()関数が動作しない

答えて

1

ReplyAllは、新しく作成されたアイテムを返す関数です。上記のコードでは、返された値は無視され、元の項目のBodyプロパティが設定されます。

+0

私はすべての返信をメッセージ本文として「承認済み」としたいのですが、選択した電子メールにはそれを行う方法がありますか? @ドミトリー –

+0

はい、それは私が言っていることです。 ReplyAllは新しいメッセージを返します。その返された新しいメッセージにBodyおよびその他のプロパティを設定します。 –

+0

ありがとうDは、現在作業中ですが、それは電子メールのチェーンを作成していないわずかな問題があります。それはできますか? –

1

最初から新しいメールアイテムを作成する必要はありません。代わりに、ReplyAllメソッドから返されたアイテムを使用することができます。したがって、エクスプローラウィンドウで選択したアイテムを取り出し、MailItemクラスにキャストできます。

Object selObject = this.Application.ActiveExplorer().Selection[1]; 
Outlook._MailItem eMail = selObject as Outlook._MailItem; 
Outlook._MailItem reply = eMail.ReplyAll(); 

replyオブジェクトを処理して、必要に応じてそのプロパティを設定することができます。

How To: Respond to an Outlook email programmaticallyの記事が参考になる場合があります。

関連する問題