Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
Delphi 2006 Professional
|
Re: Versenden einer Mail über MAPI mit CC
27. Jul 2007, 10:07
Danke.
Das mit dem Array war ne klasse Idee. Klappt jetzt.
Hier der Code:
Delphi-Quellcode:
function SendFileMail(const FileName: TStrArray; const Subject, BodyText, RecipAdress, CopyConAdress: string): string;
var
mMessage : TMapiMessage;
mlpFiles : array of TMapiFileDesc;
mRecips : array of TMapiRecipDesc;
ix : integer;
begin
SetLength(mRecips, 2);
with mRecips[0] do
begin
ulRecipClass := MAPI_TO;
lpszName := PChar(RecipAdress);
lpszAddress := PChar(RecipAdress);
ulEIDSize := 0;
lpEntryID := nil;
end;
with mRecips[1] do
begin
ulRecipClass := MAPI_CC;
lpszName := PChar(CopyConAdress);
lpszAddress := PChar(CopyConAdress);
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 := 2;
lpRecips := @mRecips[0];
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;
Holger Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
|
|
Zitat
|