MAPISENDMAILW-Rückruffunktion (mapi.h)
Sendet eine Unicode-Nachricht. Diese Funktion ersetzt die ANSI-Funktion MAPISendMail.
Unter Windows 7 und früher: Installieren Sie das Microsoft Windows Software Development Kit (SDK) für Windows 8 , und verwenden Sie MAPISendMailHelper , um eine Nachricht zu senden.
Alle Informationen gelten sowohl für MAPISendMailW als auch für MAPISendMail , sofern nicht anders angegeben.
Syntax
MAPISENDMAILW Mapisendmailw;
ULONG Mapisendmailw(
[in] LHANDLE lhSession,
[in] ULONG_PTR ulUIParam,
[in] lpMapiMessageW lpMessage,
[in] FLAGS flFlags,
ULONG ulReserved
)
{...}
Parameter
[in] lhSession
Typ: LHANDLE
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
Typ: ULONG_PTR
Übergeordnetes Fensterhandle oder null.
Wenn der ulUIParam-Parameter das übergeordnete Fensterhandle enthält, ist das Handle vom Typ HWND (in eine ULONG_PTR umgewandelt).
Wenn während des Anrufs kein Dialogfeld angezeigt wird, wird ulUIParam ignoriert.
[in] lpMessage
Typ: lpMapiMessageW
Zeiger auf eine MAPISendMailW-Struktur , die die zu sendende Nachricht enthält.
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. |
Weitere Informationen dazu, wie die Funktion Empfängerinformationen verarbeitet, finden Sie unter Behandeln von Empfängerinformationen in Anmerkungen.
[in] flFlags
Typ: FLAGS
Bitmaske von Optionsflags. Die folgenden Flags können festgelegt werden.
Wert | Bedeutung |
---|---|
|
Es sollte ein modales Anwendungsdialogfeld 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. |
|
Verfügbar unter Windows 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. Tipp Um dieses Flag unter Windows 7 oder früher verwenden zu können, müssen Sie sowohl das Windows SDK für Windows 8 als auch die nächste Version von Office installiert haben, und Sie müssen MAPISendMailHelper anstelle von MAPISendMailW aufrufen.
|
|
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. |
|
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. |
|
Konvertieren Sie die Nachricht nicht in ANSI, wenn der Anbieter Unicode nicht unterstützt.
Hinweis Dieses Flag ist nur für MAPISendMailW verfügbar.
|
ulReserved
Typ: ULONG
Reserviert; muss null sein.
Rückgabewert
Typ: ULONG
Diese Funktion gibt einen der folgenden Werte zurück.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Ein Empfänger entsprach mehr als einer der Empfängerdeskriptorstrukturen, und MAPI_DIALOG nicht festgelegt wurde. Es wurde keine Nachricht gesendet. |
|
Die angegebene Anlage wurde nicht gefunden. Es wurde keine Nachricht gesendet. |
|
Die angegebene Anlage konnte nicht geöffnet werden. Es wurde keine Nachricht gesendet. |
|
Die angegebene Anlage war zu groß. Es wurde keine Nachricht gesendet. |
|
Der Typ eines Empfängers wurde nicht MAPI_TO, MAPI_CC oder MAPI_BCC. Es wurde keine Nachricht gesendet. |
|
Mindestens ein nicht spezifizierter Fehler ist aufgetreten. Es wurde keine Nachricht gesendet. |
|
Es war nicht genügend Arbeitsspeicher vorhanden, um fortzufahren. Es wurde keine Nachricht gesendet. |
|
Mindestens ein Empfänger war ungültig oder wurde nicht in eine Adresse aufgelöst. |
|
Es gab keine Standardanmeldung, und der Benutzer konnte sich nicht erfolgreich anmelden, als das Anmeldedialogfeld angezeigt wurde. Es wurde keine Nachricht gesendet. |
|
Der Text in der Nachricht war zu groß. Es wurde keine Nachricht gesendet. |
|
Es gab zu viele Dateianlagen. Es wurde keine Nachricht gesendet. |
|
Es gab zu viele Empfänger. Es wurde keine Nachricht gesendet. |
|
Das MAPI_FORCE_UNICODE-Flag wird angegeben, und Unicode wird nicht unterstützt.
Hinweis Dieser Wert kann nur von MAPISendMailW zurückgegeben werden.
|
|
Ein Empfänger wurde nicht in der Adressliste angezeigt. Es wurde keine Nachricht gesendet. |
|
Der Benutzer hat eines der Dialogfelder abgebrochen. Es wurde keine Nachricht gesendet. |
|
Der Aufruf war erfolgreich, und die Nachricht wurde gesendet. |
Hinweise
Die Funktionen MAPISendMailW (Unicode) und MAPISendMail (ANSI) senden eine Standardnachricht mit oder ohne Benutzerinteraktion. Das Profil muss so konfiguriert sein, dass beide Funktionen die Standarddienstanbieter öffnen können, ohne dass eine Benutzerinteraktion erforderlich ist.
Weder MAPISendMailW noch MAPISendMail erfordert einen Absenderempfänger, um eine Nachricht zu senden.
Ihre Clientanwendung kann eine vollständige oder teilweise Liste von Empfängernamen, Betrefftext, Dateianlagen oder Nachrichtentext bereitstellen. Wenn Informationen fehlen, kann die von Ihnen aufgerufene Funktion ( entweder MAPISendMailW oder MAPISendMail) den Benutzer zur Eingabe der fehlenden Informationen auffordern.
Wenn keine Informationen fehlen, kann die Nachricht unverändert gesendet werden, oder der Benutzer kann aufgefordert werden, die Informationen zu überprüfen und die Werte bei Bedarf zu ändern.
Sowohl MAPISendMailW als auch MAPISendMail unterscheiden sich von der MAPISendDocuments-Funktion dadurch, dass sie mehr Flexibilität bei der Nachrichtengenerierung ermöglichen.
Nachrichtentext
Einige Clientanwendungen können Betreffzeilen abschneiden, die zu lang sind oder Wagenrückläufe, Zeilenfeeds oder Formularfeeds enthalten.Jeder Absatz sollte mit einem CR (0x0d), einem LF (0x0a) oder einem CRLF-Paar (0x0d0a) beendet werden. Sowohl MAPISendMailW als auch MAPISendMail-Umbruchzeilen nach Bedarf.
Wenn der Text die Systemgrenzwerte überschreitet, gibt die Funktion den MAPI_E_TEXT_TOO_LARGE Wert zurück.
Dateianlagen
Die Anzahl der Anlagen pro Nachricht kann in einigen Messagingsystemen begrenzt werden. Wenn dieser Grenzwert überschritten wird, schlägt die Funktion fehl und gibt den MAPI_E_TOO_MANY_FILES Wert zurück.Dateianlagen werden in die Nachricht kopiert, bevor die Funktion zurückgegeben wird. Daher wirken sich spätere Änderungen an den Dateien nicht auf den Inhalt der Nachricht aus. Die Dateien müssen geschlossen werden, wenn sie kopiert werden.
Versuchen Sie nicht, Anlagen außerhalb des Bereichs des Nachrichtentexts anzuzeigen.
Empfänger
Einige Messagingsysteme können die Anzahl der Empfänger pro Nachricht einschränken. Wenn die Clientanwendung einen Nicht-NULL-Wert übergibt, der eine Anzahl von Empfängern angibt, die den Systemgrenzwert überschreiten, schlägt die Funktion fehl und gibt den MAPI_E_TOO_MANY_RECIPIENTS Wert zurück.Wenn Ihre Clientanwendung Nachrichten an einen oder mehrere benutzerdefinierte Empfänger sendet und Sie vermeiden möchten, die Namen dieser Empfänger aufzulösen, müssen Sie die Adresse des benutzerdefinierten Empfängers angeben.
Um eine Adresse eines Empfängers anzugeben, wenn Sie MAPISendMailW aufrufen, müssen Sie das lpszAddress-Element der MapiRecipDescW-Struktur , die die Empfängerinformationen enthält, auf die benutzerdefinierte Adresse festlegen. Diese MapiRecipDescW-Struktur ist in dem Array von Empfängern enthalten, das im lpRecips-Member der MapiMessageW-Struktur gespeichert ist, das vom lpMessage-Parameter an die Funktion übergeben wird.
Eine erfolgreiche Rückgabe der Funktion impliziert nicht unbedingt die Empfängervalidierung. Die Nachricht wurde möglicherweise nicht an alle Empfänger gesendet. Je nach Transportanbieter kann die Empfängerüberprüfung ein langwieriger Prozess sein.
Behandeln von Empfängerinformationen
Das lpRecips-Element der MapiMessageW-Struktur oder die MapiMessage-Struktur kann entweder einen Eintragsbezeichner, den Namen des Empfängers, eine Adresse oder ein Name-Adresspaar enthalten. Die folgende Tabelle zeigt, wie die Funktion jeden Fall behandelt.Empfängerinformationen | Action |
---|---|
Eintragsbezeichner | Keine Namensauflösung; Der Name und die Adresse werden ignoriert. |
Name | Der Name wurde mithilfe der Einfachen MAPI-Auflösungsregeln aufgelöst. |
Adresse | Keine Namensauflösung; address wird sowohl für die Nachrichtenübermittlung als auch für die Anzeige des Empfängernamens verwendet. |
Name und Adresse | Keine Namensauflösung; Name, der nur zum Anzeigen des Empfängernamens verwendet wird. |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mapi.h |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für