メッセージの配信を再送信Resending an undelivered message

適用されます: OutlookApplies to: Outlook

トランスポート プロバイダーは、送信したメッセージを正常に配信できない場合に、配信不能レポート (NDR) を送信します。A transport provider sends a non-delivery report (NDR) when it cannot successfully deliver a message that you have submitted. クライアントはユーザーがこれらの配信不能メッセージの再送を試みることができるかどうか。It is up to the client whether or not users can attempt to resend these undelivered messages. サポートする場合、メッセージを再送信 MAPI によって提供されるフォームを使用してか、独自に実装します。If you support resending messages, you can either use a form provided by MAPI or implement your own. MAPI フォームが可能であれば、失敗した受信者と配信の失敗の理由の名前を表示し、ボタンが含まれていますが、選択すると、メッセージを再送信するユーザーに許可します。The MAPI form displays the names of the failed recipients and the reason for the delivery failure, if possible, and includes a button that, when selected, allows a user to resend the message.

再送信されたメッセージを受信すると、元のメッセージとまったく同じになります。When a resent message is received, it should look exactly like the original message. 受信者は、転送の最初の試行は、またはそれ以降の試行で配信されたメッセージとを区別することことがあります。The recipient should be unable to differentiate between a message that was delivered on its first attempt at transmission or a subsequent attempt. このメッセージに返信は、メッセージが送信された正常に初めて場合とまったく同様に動作するはず。Replies on this message should work exactly as if the message had been sent successfully the first time.

メッセージの配信を再送信するにはTo resend an undelivered message

  1. 新しいメッセージを作成するのにはIMAPIFolder::CreateMessageを呼び出します。Call IMAPIFolder::CreateMessage to create a new message.

  2. 元のメッセージからコピーするすべてのプロパティを除く、* * PR_MESSAGE_RECIPIENTS * * (PidTagMessageRecipients) のプロパティ、およびPR_SENDERPR_SENT_REPRESENTINGのプロパティです。Copy all of the properties from the original message, excluding the ** PR_MESSAGE_RECIPIENTS ** (PidTagMessageRecipients) property, and the PR_SENDER and PR_SENT_REPRESENTING properties. 次のプロパティの変更を行います。Make the following property modifications:

    • PR_MESSAGE_CLASS (PidTagMessageClass) に、レポートの設定 * * PR_ORIG_MESSAGE_CLASS * * (PidTagOriginalMessageClass) のプロパティです。Set PR_MESSAGE_CLASS (PidTagMessageClass) to the report's **PR_ORIG_MESSAGE_CLASS ** (PidTagOriginalMessageClass) property.

    • PR_MESSAGE_FLAGS (PidTagMessageFlags) プロパティでは、MSGFLAG_RESEND フラグを設定します。Set the MSGFLAG_RESEND flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property.

    • PR_ENTRYID (PidTagEntryId) のプロパティを元のメッセージのPR_ORIGINAL_ENTRYID (PidTagOriginalEntryId) に設定します。Set PR_ORIGINAL_ENTRYID (PidTagOriginalEntryId) to the original message's PR_ENTRYID (PidTagEntryId) property.

    • 各受信者について、 PR_RECIPIENT_TYPE (PidTagRecipientType) のプロパティに MAPI_SUBMITTED を設定します。For each recipient, set MAPI_SUBMITTED in the PR_RECIPIENT_TYPE (PidTagRecipientType) property.

    • 失敗した各受信者が重複してください。Duplicate each failed recipient. 重複した受信者のPR_RECIPIENT_TYPEプロパティを MAPI_P1 に変更します。Change the PR_RECIPIENT_TYPE property for the duplicated recipient to MAPI_P1. したがって、障害が発生した受信者ごとにエントリーがあるようになりました 2 受信者テーブルの: PR_RECIPIENT_TYPEで 1 つが元の値に設定し、MAPI_P1 にPR_RECIPIENT_TYPEと、その他の設定です。Therefore, for each failed recipient there are now two entries in the recipient table: one with PR_RECIPIENT_TYPE set to its original value and the other with PR_RECIPIENT_TYPE set to MAPI_P1.

  3. 会話が必要な場合にトラッキングを設定するのにはScCreateConversationIndexを呼び出します。Call ScCreateConversationIndex to set up conversation tracking if desired.

  4. 受信者の一覧を更新するための新しいメッセージのIMessage::ModifyRecipientsメソッドを呼び出します。Call the new message's IMessage::ModifyRecipients method to update the recipient list.

  5. 保存し、新しいメッセージを送信するIMessage::SubmitMessageを呼び出します。Call IMessage::SubmitMessage to save and send the new message.