![]() |
Flags für MAPI Sendmail Aufruf
Hallo,
wir wollen über eine MAPI Funktion E-mails versenden. Unser E-mail Client ist Lotus Notes.
Delphi-Quellcode:
Das Ganze funktioniert insoweit, dass E-mails in Notes erzeugt werden, es öffnet sich das normale Mew mail Fenster und ich sehe meine generierte Mail.
function sendMail( const TargetName, TargetAddr,
SenderName, SenderAddr, MsgSubject, MsgContent, Attachment : String; PreviewMsg : Boolean = TRUE ) : Integer; var msg : TMapiMessage; // Pointer to the message itself mrdSender, // Who's sending it? mrdTarget : TMapiRecipDesc; // Who's going to get it? mfdAttach : TMapiFileDesc; // The attached file. liFlags : Longint; // Flags for MAPI. strError : String; // Holds MAPI error results; begin result := 0; liFlags := 0; fillChar( msg, sizeOf( msg ), 0 ); with msg do begin // if TargetAddr = '' then // raise tMailFileException.createFmt( ERROR, // [ 'Target email address not specified' ] ) begin if TargetName = '' then mrdTarget.lpszName := pChar( TargetAddr ) else mrdTarget.lpszName := pChar( TargetName ); mrdTarget.ulRecipClass := MAPI_TO; mrdTarget.lpszAddress := pChar( TargetAddr ); mrdTarget.ulReserved := 0; mrdTarget.ulEIDSize := 0; mrdTarget.lpEntryID := NIL; nRecipCount := 1; lpRecips := @mrdTarget; end; // if SenderAddr = '' then // raise tMailFileException.createFmt( ERROR, // [ 'Sender email address not specified' ] ) begin if SenderName = '' then mrdSender.lpszName := pChar( SenderAddr ) else mrdSender.lpszName := pChar( SenderName ); mrdSender.ulRecipClass := MAPI_ORIG; mrdSender.lpszAddress := pChar( 'SMTP:' + SenderAddr ); mrdSender.ulReserved := 0; mrdSender.ulEIDSize := 0; mrdSender.lpEntryID := NIL; lpOriginator := @mrdSender; end; if MsgSubject = '' then lpszSubject := '' else lpszSubject := pChar( MsgSubject ); // if ( MsgContent = '' ) AND ( Attachment = '' ) then // raise tMailFileException.createFmt( ERROR, // [ 'Tried to send an empty message (no content or attachment)' ] ) begin if MsgContent = '' then lpszNoteText := 'Please see the attached file.' else lpszNoteText := pChar( MsgContent ); if Attachment = '' then begin nFileCount := 0; lpFiles := NIL; end else begin fillChar( mfdAttach, sizeOf( mfdAttach ), 0 ); mfdAttach.nPosition := cardinal( $FFFFFFFF ); mfdAttach.lpszPathName := pChar( Attachment ); nFileCount := 1; lpFiles := @mfdAttach; end; end; // with if previewMsg then liFlags := MAPI_DIALOG; result := mapiSendMail( 0, application.Handle, msg, liFlags, 0 ); { if result <> 0 then raise tMailFileException.createFmt( ERROR, [ 'MAPI triggered an error (' + getMAPIError( result ) + ')' ] ); } end; end; Wie krieg ich notes dazu, dass es diese mail auch sendet. Offensichtlich hat es irgendetwas mit liflags und MAPI_DIALOG zu tun. Mapi_dialog sthet auf 8, das heisst: trage E-mail ein. Gefunden hab ich noch die 4 das bedeudet sende E-Mail. Funktioniert aber nicht. Kann mir jemand helfen? Die Fehlerabfragen sind auskommentiert. Rainer |
Re: Flags für MAPI Sendmail Aufruf
Hallo Rainer,
es gibt laut PSDK nur drei zulässige Flags für MapiSendMail(), $4 gehört nicht dazu. Rufst du deine Funktion eventuell immer mit PreviewMsg = TRUE auf? Sobald die Flags MAPI_DIALOG enthalten, soll die Mail durch den Benutzer verschickt werden. Ansonsten gibt es noch den Fall, dass kein gültiger Empfänger angegeben ist - auch dann erfolgt kein automatischer Versand. Grüße vom marabu |
Re: Flags für MAPI Sendmail Aufruf
Hall marabu,
sorry aber das Ganze funktioniert immer noch nicht. Notes weigert sich das Mail zu senden, obwohl der Rückgabewerd der Funktion 0 ist, die Mail also gesendet sein müsste. msgpreview steht auf false. Rainer |
Re: Flags für MAPI Sendmail Aufruf
Zitat:
wie wäre es mit MapiLogon, damit Du ein Sessionhandle erhältst? Du verwendest bei mapiSendMail 0 als Sessionhandle... |
Re: Flags für MAPI Sendmail Aufruf
Hatte einen Beitrag irgendwo gelesen, dass Notes den automatischen Versand überhaupt nicht unterstützt. Schon mal an diese Möglichkeit gedacht/recheriert?
|
Re: Flags für MAPI Sendmail Aufruf
Hallo,
wenn du mir jetzt noch sagst wie man mapilogon benutzt wäre ich glücklich. Rainer |
Re: Flags für MAPI Sendmail Aufruf
Hallo,
ich habe verschiedene Beschreibungen gelesen, dass die automatische Weiterleitung aus Word und Excel unterstützt wird. Ich geh mal davon aus, dass das mit MAPI auch geht. Ausserdem gibts in Notes eine installierbare MAPI Schnittstelle. Rainer |
Re: Flags für MAPI Sendmail Aufruf
Zitat:
Delphi-Quellcode:
var
MAPI_Session : Cardinal; // Anmelden dwRet := MapiLogon(Handle, PChar(''), PChar(''), MAPI_LOGON_UI or MAPI_NEW_SESSION, 0, @MAPI_Session); // Senden MapiSendMail(MAPI_Session, Handle, MapiMessage, MAPI_DIALOG, 0); // Abmelden MapiLogOff(MAPI_Session, Handle, 0, 0); |
Re: Flags für MAPI Sendmail Aufruf
Hallo,
funktioniert nicht. Notes öffnet das New mail Fenster, trägt alles ein, dann ist schluss. Rainer |
Re: Flags für MAPI Sendmail Aufruf
Was heisst "Schluss"? Hängt sich das Mailfenster auf oder was?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz