AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datei per E-Mail versenden

Ein Thema von franz · begonnen am 18. Feb 2005
Antwort Antwort
franz

Registriert seit: 23. Dez 2003
Ort: Bad Waldsee
112 Beiträge
 
Delphi 5 Professional
 
#1

Datei per E-Mail versenden

  Alt 18. Feb 2005, 23:28
Hi,
heute präsentiere ich euch eine Funktion, mit der sich einzelne Dateien per E-Mail versenden lassen. Das ganze über das Standard Mailkonto des Standardmailprogramms.

Verwendete Units:
Die Unit MAPI muss eingebunden werden.

Paramert
FileName Name und Pfad der Datei, die per E-Mail versendet werden soll
Subject Betreff
BodyText Text der Nachricht
RecipAdress E-Mail Adresse des Empfängers

Rückgabewerte
Wenn kein Fehler aufgetreten ist, gibt SendFileMail() eine leeren String zurück. Ist ein Fehler aufgetreten, wird eine Fehlermeldung als String zurückgegeben. Dummerweise lässt sich nicht immer feststellen, ob ein Fehler aufgetreten ist, da die verwendete MAPI Funktion MapiSendMail() nicht immer bei einem Fehler auch den richtigen Rückgabewert zurückgibt. Es kann also auch ein leerer String zurückgegeben werden, wenn zum Beispiel das Versenden der E-Mail vom Benutzer abgebrochen wurde oder keine Verbindung hergestellt werden konnte. (Bedanken wir uns bei Microsoft).

Beispiel:
Nach Aufruf der Funktion SendFileMail() wird die E-Mail sofort mit dem Standardmailprogramm über das Standard E-Mailkonto versendet.

Delphi-Quellcode:

var
  S: String;

  S := SendFileMail('C:\Eigene Dateien\_Test\Neu.txt', 'Betreff', 'Meine Nachricht',
         'Empfängername', 'Konto@Anbieter.de');

  if Length(S) > 0 then
  begin
    Beep;
    MessageDlg('Die Datei konnte nicht per E-Mail versendet werden!' + #10#13#10#13 +
      'Meldung:' + #10#13 + S, mtError, [mbOK], 0);
  end;
Quellcode:
Delphi-Quellcode:
function SendFileMail(const FileName: TFileName; const Subject, BodyText, RecipName, RecipAdress: String): String;
var
  mMessage: TMapiMessage;
  mlpFiles: TMapiFileDesc;
  mRecips: TMapiRecipDesc;
begin
  if not FileExists(FileName) then
  begin
    Result := 'File "' + FileName + '" not found!';
    Exit;
  end;

  with mRecips do
  begin
    ulRecipClass := MAPI_TO;
    lpszName := PChar(RecipName);
    lpszAddress := StrNew(PChar('SMTP:' + RecipAdress));
    ulEIDSize := 0;
    lpEntryID := nil;
  end;

  with mlpFiles do
  begin
    flFlags := 0;
    nPosition := 0;
    lpszPathName := PChar(FileName);
    lpszFileName := nil;
    lpFileType := nil;
  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 := 1;
    lpFiles := @mlpFiles;
  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;
[edit=Matze]Code formatiert. Mfg, Matze[/edit]

Geändert von Matze (11. Jul 2010 um 20:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz