web-dev-qa-db-ja.com

プログラムで新しいOutlook電子メールを作成して開こうとしています

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

private void CreateOutlookEmail()
    {
        try
        {                
            Outlook.MailItem mailItem = (Outlook.MailItem)
                this.CreateItem(Outlook.OlItemType.olMailItem);
            mailItem.Subject = "This is the subject";
            mailItem.To = "[email protected]";
            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」はMSOfficeアイテムの標準的な方法だと思いましたが、確かに別のWebサイトで上記のコードを見つけて、単にコピーしました。

何を誤解してください?

13
PJW

考えてみてください。 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);

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

編集

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

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

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

using Outlook = Microsoft.Office.Interop.Outlook;
28
luketorjussen

これを試して

string subject = "My subject";
string emailTag = string.Format("mailto:[email protected]?subject={0}", subject);
System.Diagnostics.Process.Start(emailTag);
8
JohnnBlade

私の経験では、Office.Interopは面倒な場合があり、適切な引数を使用してOutlookを開始するだけで、より単純で移植性の高いオプションになる可能性があります。

System.Diagnostics.Process.Start("C:\\Program Files (x86)\\Microsoft Office\\Office12\\Outlook.EXE", "/c ipm.note /m [email protected]"));

Outlookのコマンドラインスイッチは、さまざまな情報源を備えたさらに多くのオプションを提供します(試してみてください http://www.Outlook-tips.net/how-to/using-Outlook-command-lines

5
user3805384