メッセージを送信する
適用対象: Outlook 2013 | Outlook 2016
メッセージを送信する準備ができたら、 その IMessage::SubmitMessage メソッドを 呼び出します。 SubmitMessage は、メッセージを送信キューに配置し、メッセージのPR_MESSAGE_FLAGS (PidTagMessageFlags) プロパティのMSGFLAG_SUBMIT フラグを設定します。
メッセージ ストア プロバイダーは、トランスポート プロバイダーと緊密に結合されている場合、メッセージをメッセージング システムに配信するトランスポートに直接メッセージを渡します。 緊密に結合されていない場合、メッセージ ストア プロバイダーは、送信キューが変更されたことを MAPI スプーラーに通知し、MAPI スプーラーはメッセージを適切なトランスポート プロバイダーに転送します。
ユーザーに送信操作の取り消しを許可する場合は、 IMsgStore::AbortSubmit を呼び出してこの機能を実装します。 AbortSubmit は、送信キューからメッセージを削除します。 基になるメッセージング システムにメッセージが送信されるまで、ユーザーは送信の停止を許可できます。
SubmitMessage がMAPI_E_CORRUPT_DATAを返す場合は、送信されるデータが失われたと仮定します。 2 回目の送信を試みる前に、IMAPIProp::SetProps と IMAPIProp::SaveChanges を呼び出してメッセージを書き直します。 これらの IMAPIProp 呼び出しが失敗した場合、または SubmitMessage が 2 回目に失敗した場合は、ユーザーにエラーを表示します。
SubmitMessage の呼び出しが成功したら、受信者リストに割り当てられたメモリを解放し、メッセージとその添付ファイルを解放します。 メッセージが送信されると、MAPI では、これらのオブジェクトのポインターに対するそれ以上の操作は許可されません。 1 つの例外は 、IUnknown::Release を呼び出すことです。 多くのメッセージ ストア プロバイダーが送信されたメッセージのエントリ識別子を無効にするため、他の呼び出しは許可されません。