Hallo,
ich habe in der CodeLib folgenden Beitrag gefunden
eMail über Mapi versenden
Den Code habe ich ein wenig geändert unm mehrere Attachments einzubinden.
Klappt soweit auch wunderbar.
Hier mein Code.
Delphi-Quellcode:
function SendFileMail(const FileName: TStrArray; const Subject, BodyText, RecipAdress, CopyConAdress: string): string;
var
mMessage : TMapiMessage;
mlpFiles : array of TMapiFileDesc;
mRecips : TMapiRecipDesc;
ix : integer;
begin
with mRecips do
begin
ulRecipClass := MAPI_TO;
lpszName := PChar(RecipAdress);
lpszAddress := PChar(RecipAdress);
ulEIDSize := 0;
lpEntryID := nil;
end;
SetLength(mlpFiles, Length(FileName));
for ix := 0 to High(mlpFiles) do
begin
with mlpFiles[ix] do
begin
flFlags := 0;
nPosition := Cardinal(-1);
lpszPathName := PChar(FileName[ix]);
lpszFileName := nil;
lpFileType := nil;
end;
end;
with mMessage do
begin
lpszSubject := PChar(Subject);
lpszNoteText := PChar(BodyText);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
lpOriginator := nil;
nRecipCount := 1;
lpRecips := @mRecips;
nFileCount := Length(FileName);
if (nFileCount > 0)
then lpFiles := @mlpFiles[0]
else lpFiles := nil;
end;
case MapiSendMail(0, 0, mMessage, MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) of
MAPI_E_AMBIGUOUS_RECIPIENT:
Result := 'A recipient matched more than one of the recipient descriptor structures and MAPI_DIALOG was not set!';
MAPI_E_ATTACHMENT_NOT_FOUND:
Result := 'The specified attachment was not found!';
MAPI_E_ATTACHMENT_OPEN_FAILURE:
Result := 'The specified attachment could not be open!';
MAPI_E_BAD_RECIPTYPE:
Result := 'The type of a recipient was not MAPI_TO, MAPI_CC, or MAPI_BCC!';
MAPI_E_FAILURE:
Result := 'One or more unspecified errors occurred!';
MAPI_E_INSUFFICIENT_MEMORY:
Result := 'There was insufficient memory to proceed!';
MAPI_E_LOGIN_FAILURE:
Result := 'There was no default logon, and the user failed to log on successfully when the logon dialog box was displayed!';
MAPI_E_TEXT_TOO_LARGE:
Result := 'The text in the message was too large to sent!';
MAPI_E_TOO_MANY_FILES:
Result := 'There were too many file attachments!';
MAPI_E_TOO_MANY_RECIPIENTS:
Result := 'There were too many recipients!';
MAPI_E_UNKNOWN_RECIPIENT:
Result := 'A recipient did not appear in the address list!';
MAPI_E_USER_ABORT:
Result := 'The user canceled one of the dialog boxes!';
end;
end;
In den Aufruf habe ich auch schon die Adresse für das
CC-Feld (Copy Con) eingebaut.
Wie sage ich der Function denn das sie die Mail auch an einen zweiten Empfänger schicken soll.
Probiert habe ich u.a.
ulRecipClass := MAPI_CC;
Hat aber nicht hingehauen.
Ich wäre sehr dankbar für eine Idee.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...