Freigeben über


Senden einer Antwort

Gilt für: Outlook 2013 | Outlook 2016

Clientanwendungen unterstützen in der Regel zwei Arten von Antworten: eine, die nur an den Absender der ursprünglichen Nachricht gesendet wird, und eine, die an alle anderen Empfänger gesendet wird, die zusätzlich zum Absender in der Empfängerliste der ursprünglichen Nachricht enthalten sind. Diese zweite Art von Antwort wird im Allgemeinen als antwortalle Nachricht bezeichnet.

Um eine Antwort eines der beiden Typen zu senden, implementieren Sie einige der gleichen Aufgaben wie beim Senden einer ursprünglichen Nachricht. Beispielsweise öffnen Sie den Standardnachrichtenspeicher und den Ordner für ausgehende Nachrichten, in der Regel den Postausgang, und rufen die IMAPIFolder::CreateMessage-Methode des ausgehenden Ordners auf, um die Antwort zu erstellen. Außerdem öffnen Sie den Ordner, der die ursprüngliche Nachricht enthält, in der Regel den Posteingang. Informationen zum Öffnen verschiedener Ordner finden Sie unter Öffnen eines Nachrichtenspeicherordners.

Der Standard Unterschied zwischen dem Erstellen einer Antwort und dem Erstellen einer ursprünglichen Nachricht besteht darin, dass bei einer Antwort die meisten Eigenschaften entweder auf den Eigenschaften der ursprünglichen Nachricht basieren oder direkt aus diesen kopiert werden. Anlagen – die PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments)-Eigenschaft einer Nachricht – werden ausdrücklich ausgeschlossen. Die Empfängerliste für eine Gesamte Antwortnachricht wird aus der Liste der ursprünglichen Nachricht mit dem Empfänger erstellt, der durch die Eigenschaft PR_RECEIVED_BY_SEARCH_KEY (PidTagReceivedBySearchKey) dargestellt wird, und alle Blindkopieempfänger wurden entfernt. Die PR_RECEIVED_BY_SEARCH_KEY-Eigenschaft stellt den aktuellen Benutzer dar.

So senden Sie eine Antwort

  1. Öffnen Sie den Standardnachrichtenspeicher. Weitere Informationen finden Sie unter Öffnen des Standardnachrichtenspeichers.

  2. Öffnen Sie den Ordner Postausgang. Weitere Informationen finden Sie unter Öffnen eines Nachrichtenspeicherordners.

  3. Rufen Sie die IMAPIFolder::CreateMessage-Methode des Postausgangs auf, um die Antwort zu erstellen.

  4. Rufen Sie die IMAPIProp::CopyTo-Methode der ursprünglichen Nachricht auf, um die folgenden Eigenschaften in die Antwortnachricht zu kopieren:

  5. Schließen Sie die folgenden Eigenschaften nicht in Ihren Aufruf von IMAPIProp::CopyTo ein:

    Eigenschaft ...
    PR_CLIENT_SUBMIT_TIME
    PR_MESSAGE_DELIVERY_TIME
    PR_MESSAGE_DOWNLOAD_TIME
    PR_MESSAGE_FLAGS
    PR_ORIGINATOR_DELIVERY_ REPORT\REQUESTED
    PR_RCVD_REPRESENTING Eigenschaften
    PR_READ_RECEIPT_ENTRYID
    PR_READ_RECEIPT_REQUESTED
    PR_RECEIVED_BY Eigenschaften
    PR_REPLY_RECIPIENT Eigenschaften
    PR_REPORT_ENTRYID
    PR_SENDER Eigenschaften
    PR_SENT_REPRESENTING Eigenschaften
    PR_SENTMAIL_ENTRYID
    PR_SUBJECT_PREFIX

  6. Fügen Sie trennzeichentext zu der von Ihnen unterstützten Nachrichtentexteigenschaft hinzu – PR_BODY, PR_HTML oder PR_RTF_COMPRESSED.

  7. Rufen Sie ScCreateConversationIndex auf, und übergeben Sie den Wert der PR_CONVERSATION_INDEX (PidTagConversationIndex)-Eigenschaft der ursprünglichen Nachricht.

  8. Legen Sie ein Präfix für die Antwort fest. Wenn Sie den Standard "RE:" verwenden, verketten Sie diese Zeichen am Anfang von PR_NORMALIZED_SUBJECT , und legen Sie PR_SUBJECT (PidTagSubject) auf diese neue Zeichenfolge fest. Legen Sie PR_SUBJECT_PREFIX (PidTagSubjectPrefix) nicht fest. Wenn Sie ein nicht standardmäßiges Präfix verwenden, z. B. eine Zeichenfolge, die länger als drei Zeichen ist, speichern Sie es in PR_SUBJECT_PREFIX.

  9. Legen Sie die PR_SENT_REPRESENTING Eigenschaften auf die entsprechenden Werte in den PR_RCVD_REPRESENTING Eigenschaften fest.

  10. Legen Sie alle Einträge in PR_REPLY_RECIPIENT_ENTRIES (PidTagReplyRecipientEntries) und PR_REPLY_RECIPIENT_NAMES (PidTagReplyRecipientNames) auf den Eintragsbezeichner und den Anzeigenamen eines primären Empfängers fest– einen Empfänger, dessen Typ MAPI_TO ist. Lassen Sie diese Eigenschaften synchronisiert. Das heißt, PR_REPLY_RECIPIENT_ENTRIES und PR_REPLY_RECIPIENT_NAMES müssen dieselbe Anzahl von Einträgen enthalten, und ein Eintrag an einer bestimmten Position in einer der Eigenschaften muss einem Eintrag an derselben Position in der anderen Eigenschaft entsprechen.

  11. Wenn die Antwort nur an den Absender der ursprünglichen Nachricht gesendet wird, erstellen Sie eine Empfängerliste mit einem Eintrag, wobei der Empfänger durch die PR_SENT_REPRESENTING-Eigenschaft der ursprünglichen Nachricht dargestellt wird. Weitere Informationen zum Erstellen einer Empfängerliste finden Sie unter Erstellen einer Empfängerliste.

  12. Wenn es sich bei der Antwort um eine Antwort handelt, erstellen Sie wie folgt eine Empfängerliste:

    1. Rufen Sie die IMessage::GetRecipientTable-Methode der ursprünglichen Nachricht auf, um auf die Empfängertabelle zuzugreifen.

    2. Rufen Sie HrQueryAllRows auf, um alle Zeilen in der Tabelle abzurufen. Ermitteln Sie, ob jede Zeile einen primären Empfänger oder Empfänger für Eine Kopie darstellt und in der Liste verbleiben soll, oder ob sie einen blinden Carbon Copy-Empfänger oder den Benutzer darstellt und aus der Liste entfernt werden soll.

    3. Unterscheiden Sie zwischen Empfängertypen, indem Sie sich die Spalte PR_RECIPIENT_TYPE (PidTagRecipientType) ansehen. Diese Spalte wird auf MAPI_TO für primäre Empfänger, MAPI_CC für Empfänger von Co2-Kopien und MAPI_BCC für blinde Empfänger von Kohlenstoffkopien festgelegt.

    4. Vergleichen Sie die spalte PR_SEARCH_KEY (PidTagSearchKey) mit der PR_RECEIVED_BY_SEARCH_KEY-Eigenschaft der ursprünglichen Nachricht, um festzustellen, ob die Zeile den Benutzer darstellt.

    5. Entfernen Sie unerwünschte Zeilen aus der Empfängerliste, indem Sie MAPIFreeBuffer aufrufen, um den Speicher freizugeben, der den entsprechenden Einträgen in der SRowSet-Struktur der Empfängertabelle zugeordnet ist. Legen Sie alle Werte im Eigenschaftenwertarray auf 0 fest, alle cValues-Member auf 0 und alle lpProps-Member in jeder SRow-Struktur im SRowSet auf NULL.

    6. Fügen Sie den Absender der Empfängerliste hinzu, wie durch die Eigenschaften PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName) und PR_SENT_REPRESENTING_ENTRYID (PidTagSentRepresentingEntryId) der ursprünglichen Nachricht dargestellt. Überprüfen Sie, ob der Absender nicht in der Liste dupliziert ist.

    7. Rufen Sie die IMessage::ModifyRecipients-Methode der Antwortnachricht auf, und legen Sie den ulFlags-Parameter auf 0 fest, um eine neue Empfängerliste für die Antwort oder weitergeleitete Nachricht basierend auf der Liste aus der ursprünglichen Nachricht zu erstellen.

  13. Rufen Sie die IMAPIProp::SaveChanges-Methode der Antwort auf, um die Nachricht zu speichern, oder IMessage::SubmitMessage , um sie zu speichern und zu senden.

Hinweis

Bevor Sie IMessage::ModifyRecipients aufrufen, um Änderungen in der Empfängerliste zu speichern, können Sie Benutzern erlauben, Änderungen über das Nachrichtenformular vorzunehmen. Benutzer können der Liste hinzufügen oder bestimmte Mitglieder entfernen. Benutzern zu erlauben, Änderungen an einer Empfängerliste vorzunehmen, ist ein optionales Clientfeature.