MAPISendMailHelper-Funktion (mapiunicodehelp.h)

Übernimmt Unicode-Nachrichteninformationen und sendet die Nachricht mithilfe von MAPISendMailW oder konvertiert die Nachricht bei Bedarf in ANSI und sendet die Nachricht mithilfe von MAPISendMail. Auf Windows 8 und höher: Rufen Sie MAPISendMailW direkt auf, um eine Nachricht zu senden.

Syntax

ULONG MAPISendMailHelper(
  [in] LHANDLE        lhSession,
  [in] ULONG_PTR      ulUIParam,
  [in] lpMapiMessageW lpMessage,
  [in] FLAGS          flFlags,
  [in] ULONG          ulReserved
);

Parameter

[in] lhSession

Handle mit einer einfachen MAPI-Sitzung oder null.

Wenn der Wert des lhSession-Parameters 0 ist, protokolliert MAPI den Benutzer und erstellt eine Sitzung, die nur für die Dauer des Aufrufs vorhanden ist. Diese temporäre Sitzung kann eine vorhandene freigegebene Sitzung oder eine neue sitzung sein. Bei Bedarf wird das Anmeldedialogfeld angezeigt.

[in] ulUIParam

Übergeordnetes Fensterhandle oder null.

Wenn der Wert des ulUIParam-Parameters 0 ist und ein Dialogfeld angezeigt wird, ist das Dialogfeld anwendungsmodal. Wenn der ulUIParam-Parameter ein übergeordnetes Fensterhandle enthält, ist er vom Typ HWND (in eine ULONG_PTR umgewandelt). Wenn während des Anrufs kein Dialogfeld angezeigt wird, wird ulUIParam ignoriert.

[in] lpMessage

Zeiger auf eine MAPISendMailW-Struktur , die die zu sendende Nachricht enthält.

Wenn der registrierte E-Mail-Anbieter erfordert, dass die Nachricht die ANSI-Codierung verwendet, konvertiert MAPISendMailHelper diese Nachricht in die ANSI MapiMessage-Struktur , ruft MAPISendMail auf, um die Nachricht zu senden.

Wenn Sie die Funktion aufrufen, beachten Sie die folgenden Informationen zu Elementen der Nachrichtenstruktur:

Mitglied Hinweise
lpFiles Legen Sie dieses Element auf NULL fest, wenn die Nachricht keine Dateianlagen enthält.
lpszMessageType Wird von Anwendungen verwendet, die keine zwischenmenschlichen Nachrichten verarbeiten. Wenn Ihre Anwendung zwischenmenschliche Nachrichten verarbeitet, legen Sie den lpszMessageType-Member auf NULL fest, oder legen Sie ihn so fest, dass er auf eine leere Zeichenfolge verweist.
lpszSubject Ein Wert von NULL bedeutet, dass kein Text für den Betreff der Nachricht vorhanden ist.
lpszNoteText Ein Wert von NULL bedeutet, dass im Textkörper der Nachricht kein Text vorhanden ist.
lpRecips Ein Wert von NULL bedeutet, dass es keine Empfänger gibt. Darüber hinaus muss der nRecipCount-Member null sein, wenn dieser Member NULL ist.
nRecipCount Ein Wert von null bedeutet, dass es keine Empfänger gibt. Wenn dieses Element 0 ist, muss das lpRecips-Elementaußerdem NULL sein.
 
Tipp Wenn Sie die Funktion aufrufen und keine Empfänger vorhanden sind, müssen Sie entweder das MAPI_DIALOG-Flag oder das MAPI_DIALOG_MODELESS-Flag festlegen, um den Benutzer zur Eingabe von Empfängerinformationen aufzufordern.
 
Wenn entweder MAPI_DIALOG oder MAPI_DIALOG_MODELESS nicht festgelegt ist, müssen die nRecipCount - und lpRecips-Member der Struktur für eine erfolgreiche Nachrichtenübermittlung gültig sein. Clientanwendungen können den flFlags-Member auf MAPI_RECEIPT_REQUESTED festlegen, um einen Lesebericht anzufordern.

Weitere Informationen dazu, wie die Funktion Empfängerinformationen verarbeitet, finden Sie unter Behandeln von Empfängerinformationen in MAPISendMailW.

[in] flFlags

Bitmaske von Optionsflags. Die folgenden Flags können festgelegt werden.

Wert Bedeutung
MAPI_DIALOG
0x00000008
Es sollte ein Dialogfeld angezeigt werden, um den Benutzer zur Eingabe von Empfängern und anderen Sendeoptionen aufzufordern.

Wenn weder MAPI_DIALOG noch MAPI_DIALOG_MODELESS festgelegt ist, muss mindestens ein Empfänger angegeben werden.

MAPI_DIALOG_MODELESS
0x00000004 | MAPI_DIALOG
Verfügbar unter Windows 7 oder früher mit der nächsten Office-Version: Es sollte ein modusloses Dialogfeld angezeigt werden, um den Benutzer zur Eingabe von Empfängern und anderen Sendeoptionen aufzufordern.

Wenn MAPI_DIALOG_MODELESS festgelegt ist, sollte der lhSession-Parameter auf 0 festgelegt werden. Andernfalls löst Outlook eine Ausnahme aus, wenn dieses Flag festgelegt ist und lhSession nicht 0 ist.

Wenn MAPI_DIALOG_MODELESS festgelegt ist, ignoriert das System außerdem das MAPI_NEW_SESSION-Flag .

Wenn weder MAPI_DIALOG noch MAPI_DIALOG_MODELESS festgelegt ist, muss mindestens ein Empfänger angegeben werden.

MAPI_LOGON_UI
0x00000001
Es sollte ein Dialogfeld angezeigt werden, in dem der Benutzer aufgefordert wird, sich bei Bedarf anzumelden.

Wenn das MAPI_LOGON_UI-Flag nicht festgelegt ist, zeigt die Clientanwendung kein Anmeldedialogfeld an und gibt einen Fehlerwert zurück, wenn der Benutzer nicht angemeldet ist.

Wenn der lpszMessageID-Parameter leer ist, wird das flag MAPI_LOGON_UI ignoriert.

MAPI_NEW_SESSION
0x00000002
Es wird versucht, eine neue Sitzung zu erstellen, anstatt die freigegebene Sitzung der Umgebung zu erhalten. Wenn das MAPI_NEW_SESSION-Flag nicht festgelegt ist, verwendet die Funktion eine vorhandene, freigegebene Sitzung.

Wenn Sie das MAPI_NEW_SESSION-Flag festlegen (die Verwendung einer freigegebenen Sitzung verhindern) und das Profil ein Kennwort erfordert, müssen Sie auch das MAPI_LOGON_UI-Flag festlegen, da die Funktion fehlschlägt. Ihre Clientanwendung kann diesen Fehler vermeiden, indem Sie das Standardprofil ohne Kennwort oder ein explizites Profil ohne Kennwort verwenden.

MAPI_FORCE_UNICODE
0x00040000
Konvertieren Sie die Nachricht nicht in ANSI, wenn der Anbieter Unicode nicht unterstützt.

[in] ulReserved

Reserviert; muss null sein.

Rückgabewert

Diese Funktion gibt einen der folgenden Werte zurück.

Rückgabecode/-wert BESCHREIBUNG
MAPI_E_AMBIGUOUS_RECIPIENT
21
Ein Empfänger entsprach mehr als einer der Empfängerdeskriptorstrukturen, und MAPI_DIALOG nicht festgelegt wurde. Es wurde keine Nachricht gesendet.
MAPI_E_ATTACHMENT_NOT_FOUND
11
Die angegebene Anlage wurde nicht gefunden. Es wurde keine Nachricht gesendet.
MAPI_E_ATTACHMENT_OPEN_FAILURE
12
Die angegebene Anlage konnte nicht geöffnet werden. Es wurde keine Nachricht gesendet.
MAPI_E_BAD_RECIPTYPE
15
Der Typ eines Empfängers wurde nicht MAPI_TO, MAPI_CC oder MAPI_BCC. Es wurde keine Nachricht gesendet.
MAPI_E_FAILURE
2
Mindestens ein nicht spezifizierter Fehler ist aufgetreten. Es wurde keine Nachricht gesendet.
MAPI_E_INSUFFICIENT_MEMORY
5
Es war nicht genügend Arbeitsspeicher vorhanden, um fortzufahren. Es wurde keine Nachricht gesendet.
MAPI_E_INVALID_RECIPS
25
Ein oder mehrere Empfänger waren ungültig oder wurden nicht in eine Adresse aufgelöst.
MAPI_E_LOGIN_FAILURE
3
Es gab keine Standardanmeldung, und der Benutzer konnte sich nicht erfolgreich anmelden, wenn das Anmeldedialogfeld angezeigt wurde. Es wurde keine Nachricht gesendet.
MAPI_E_TEXT_TOO_LARGE
18
Der Text in der Nachricht war zu groß. Es wurde keine Nachricht gesendet.
MAPI_E_TOO_MANY_FILES
9
Es gab zu viele Dateianlagen. Es wurde keine Nachricht gesendet.
MAPI_E_TOO_MANY_RECIPIENTS
10
Es gab zu viele Empfänger. Es wurde keine Nachricht gesendet.
MAPI_E_UNICODE_NOT_SUPPORTED
27
Das flag MAPI_FORCE_UNICODE wird angegeben, und Unicode wird nicht unterstützt.
Hinweis Dieser Wert kann nur zurückgegeben werden, wenn MAPISendMailW aufgerufen wird, um die Nachricht zu senden.
 
MAPI_E_UNKNOWN_RECIPIENT
14
Ein Empfänger wurde nicht in der Adressliste angezeigt. Es wurde keine Nachricht gesendet.
MAPI_E_USER_ABORT
1
Der Benutzer hat eines der Dialogfelder abgebrochen. Es wurde keine Nachricht gesendet.
SUCCESS_SUCCESS
0
Der Aufruf war erfolgreich, und die Nachricht wurde gesendet.

Hinweise

Weitere Informationen zu MAPI-Sendefunktionen finden Sie unter MAPISendMailW.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile mapiunicodehelp.h
DLL Mapi32.dll

Weitere Informationen

MAPISendMailW

Windows SDK für Windows 8