15

winforms アプリケーションがあり、新しい Outlook 電子メールを作成して開くメソッドを作成しようとしています。これまでのところ、

private void CreateOutlookEmail()
    {
        try
        {                
            Outlook.MailItem mailItem = (Outlook.MailItem)
                this.CreateItem(Outlook.OlItemType.olMailItem);
            mailItem.Subject = "This is the subject";
            mailItem.To = "someone@example.com";
            mailItem.Body = "This is the message.";
            mailItem.Importance = Outlook.OlImportance.olImportanceLow;
            mailItem.Display(false);
        }
        catch (Exception eX)
        {
            throw new Exception("cDocument: Error occurred trying to Create an Outlook Email"
                                + Environment.NewLine + eX.Message);
        }
    }

ただし、'CreateItem' 参照にはエラー メッセージで下線が引かれています。

「CreateItem の定義が含まれていません」

'CreateItem' は MS Office アイテムの標準的な方法だと思っていましたが、確かに別の Web サイトで上記のコードを見つけて、単純にコピーしました。

私は何を誤解していますか?

4

3 に答える 3

36

考えてみてください。現在のオブジェクトでCreateItemメソッドを呼び出しています。このクラスでメソッドthisを定義しましたか?CreateItem

あなたの代わりに:

Outlook.MailItem mailItem = (Outlook.MailItem) this.CreateItem(Outlook.OlItemType.olMailItem);

次の行が必要です。

Outlook.Application outlookApp = new Outlook.Application();
Outlook.MailItem mailItem = (Outlook.MailItem) outlookApp.CreateItem(Outlook.OlItemType.olMailItem);

メソッドを呼び出すことができる Outlook アプリケーションのインスタンスを作成しますCreateItem

編集

これを適切に機能させるには、あと 2 つのことがあります。

1)Microsoft.Office.Interop.Outlookパッケージへの参照をプロジェクトに追加します

2) クラスに適切な using ステートメントがあることを確認します

using Outlook = Microsoft.Office.Interop.Outlook;
于 2012-06-28T10:41:01.537 に答える
8

これを試して

string subject = "My subject";
string emailTag = string.Format("mailto:someone@test.com?subject={0}", subject);
System.Diagnostics.Process.Start(emailTag);
于 2012-06-28T10:58:38.123 に答える
6

私の経験では、Office.Interop は面倒な場合があり、適切な引数を使用して Outlook を起動するだけで、よりシンプルで移植性の高いオプションを表すことができます。

System.Diagnostics.Process.Start("C:\\Program Files (x86)\\Microsoft Office\\Office12\\OUTLOOK.EXE", "/c ipm.note /m name@address.com"));

Outlook コマンド ライン スイッチを使用すると、多数の情報源を使用してより多くのオプションを利用できます ( http://www.outlook-tips.net/how-to/using-outlook-command-linesを試してください) 。

于 2014-07-04T11:56:31.433 に答える