Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SendMail mit Anhang (https://www.delphipraxis.net/164597-sendmail-mit-anhang.html)

Sir Rufo 5. Dez 2011 21:37

AW: SendMail mit Anhang
 
Delphi-Quellcode:
function SendEmail( Recipient : string; CCList : string; sSubject : string; Body : TStringList; Pfad : string )
  : boolean;
var
  nAlarmnr :  integer;
  Attachment : TIdAttachment;
  // Das fehlte hier noch !!!
  idSMTP : TIdSMTP;
  idMessage : TIdMessage;
begin

  Result := False;

  idSMTP := TidSMTP.Create;
  try

    idMessage := TidMessage.Create;
    try

      idSMTP.Host    := 'XXX.XXX.XXX.XXX';
      idSMTP.Username := 'XXXXXX';
      idSMTP.Password := 'XXXX';
      idSMTP.Port    := XX;

      idMessage.From.text  := 'XX@XXXXXX.de';
      idMessage.Sender.text := idMessage.From.text;

      idMessage.Recipients.EMailAddresses := Recipient;
      idMessage.CCList.EMailAddresses    := CCList;
      idMessage.Subject                  := sSubject;
      idMessage.ContentType              := 'multipart/*';

      with TidText.Create( idMessage.MessageParts, Body ) do
        begin
          ContentType := 'text/html';
        end;

      with TIdAttachmentFile.Create( idMessage.MessageParts, Pfad ) do
        begin
          idMessage.MessageParts.Add( );
        end;

      try
        idSMTP.Connect;
        try
          idSMTP.Send( idMessage );
          Result := True;
        finally
          idSMTP.Disconnect;
        end;
      except
        // Das macht man ja eigentlich nicht, keine Exception-Behandlung
      end;

    finally
      idMessage.Free;
    end;

  finally
    idSMTP.Free;
  end;

end;

himitsu 5. Dez 2011 21:46

AW: SendMail mit Anhang
 
Zitat:

Zitat von DeddyH (Beitrag 1137217)
Ich sehe da 4 mal Create, aber nicht 1 mal Free. Üblicherweise macht man das ja so:

Die Text- und Attachmentteile hängen sich an die Message und werden mit dieser freigegeben.
(falls man die Message freigibt)

Zitat:

Delphi-Quellcode:
// Das macht man ja eigentlich nicht, keine Exception-Behandlung

Vorallem da man so nicht mehr rausbekommt, was genau schief lief.
Ein billiger Boolean sagt ja nichts Genaueres. (eine Exceptions dagegen schon mehr)


Dein Programm kann dem User so ja nur sagen "nee, ging nicht" aber nicht "ging nicht, weil ...".


Wobei Indy diesen ContentType auch selber setzt.

text/plain = Textmail ohne anhang
multipart/alternative = z.B. Text und HTML parallel
multipart/mixed = Anhänge mit Text und/oder HTML


Zitat:

// Das fehlte hier noch !!!
Um wieviel wollen wir wetten, daß sich dort ein paar Globale Variablen versteckten?

Sir Rufo 5. Dez 2011 22:01

AW: SendMail mit Anhang
 
Zitat:

Zitat von himitsu (Beitrag 1139588)
Zitat:

// Das fehlte hier noch !!!
Um wieviel wollen wir wetten, daß sich dort ein paar Globale Variablen versteckten?

;) die scheinen wieder in Mode zu kommen ;)

Gustav.R 5. Dez 2011 23:58

AW: SendMail mit Anhang
 
Nur so aus dem OFF reingeplärrt:

CC ist wohl das neue BCC der Superheimlich-Multi-Geheimagenten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Seite 2 von 2     12   

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