Einzelnen Beitrag anzeigen

Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Versenden einer Mail über MAPI mit CC

  Alt 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 ...
  Mit Zitat antworten Zitat