0

私のアプリケーションでは、メールを送信する必要があります。smtp を使用できず、通常の方法で MS Outlook をインストールするオプションがありません。私は試した;

private Microsoft.Office.Interop.Outlook.Application oApp;
private Microsoft.Office.Interop.Outlook._NameSpace oNameSpace;
private Microsoft.Office.Interop.Outlook.MAPIFolder oOutboxFolder;

oApp = new Outlook.Application();
oNameSpace = oApp.GetNamespace("MAPI");
oNameSpace.Logon(null, null, true, true);

Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.
    CreateItem(Outlook.OlItemType.olMailItem);

    oMailItem.To = toValue;
    oMailItem.Subject = subjectValue;
    oMailItem.Body = bodyValue;
    oMailItem.Send();

このコードは、Office 2010 がマシンにインストールされて実行されている場合にうまく機能します。しかし、どの dll が参照されているかを調べる必要があります。Outlook から必要な dll のみを取得し、それらを使用して電子メールを送信することは可能ですか?

前もって感謝します

4

1 に答える 1

1

コメントによると、Exchange Web サービスを使用して Exchange サーバー経由で電子メールを送信する方法の例。ほとんどの情報は、保存のために回答にコピーされた次のリンクから入手できます。

メールメッセージを作成して送信する例 (ユーザーの送信済みアイテムフォルダーにコピーを含む)

// Create an email message and identify the Exchange service.
EmailMessage message = new EmailMessage(service);

// Add properties to the email message.
message.Subject = "Interesting";
message.Body = "The merger is finalized.";
message.ToRecipients.Add("user1@contoso.com");

// Send the email message and save a copy.
message.SendAndSaveCopy();

作成に関するその他のコードはこちら

上記のコードで使用されているサービス変数のインスタンス化は、もう少し複雑です。ここで入手できるもの

ExchangeService service = new ExchangeService();
service.Credentials = new WebCredentials("user1@contoso.com", "password");
service.AutodiscoverUrl("user1@contoso.com");

これは、電子メール アドレスから交換サービスの URL を自動検出しようとします。ただし、Exchange によって既定で使用される自己署名証明書を検証するコールバック メソッドをアタッチしない限り、サービスの呼び出しは失敗することに注意してください。詳細はこちら

Exchange サービスへの接続方法、メールの送信方法、会議の作成方法、カレンダーのリクエスト方法に関する豊富な情報があります。私はまだ上記のすべてを個人的にテストしていませんが、おそらくまともなスタートを切ることができます.

于 2013-04-03T11:14:05.823 に答える