AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SendMail mit Anhang

Ein Thema von Ykcim · begonnen am 21. Nov 2011 · letzter Beitrag vom 5. Dez 2011
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: SendMail mit Anhang

  Alt 21. Nov 2011, 14:45
Wo und wie?

Bin für jede Anregung zu haben...

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: SendMail mit Anhang

  Alt 21. Nov 2011, 14:48
Du gibst z.B. IdSMTP nicht frei.
Generell solltest Du Dir angewöhnen IMMER Ressourcenschutzblöcke zu verwenden, wenn Du Instanzen von Klassen erstellst.

Delphi-Quellcode:
Instanz := TMyClass.Create;
Try
... mach was mit der Instanz
Finally
  Instanz.free;
End
Jens
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: SendMail mit Anhang

  Alt 21. Nov 2011, 14:49
Ich sehe da 4 mal Create, aber nicht 1 mal Free. Üblicherweise macht man das ja so:
Delphi-Quellcode:
Dings := TDings.Create;
try
  Dings.MachWas;
finally
  Dings.Free;
end;
[edit] [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 21:27
Guten Abend,

ich habe auf diesem Gebiet eine ganz große Lücke...
Kann mir jemand das "try" and "finally" mal für meine beschriebene Prozedur zeigen. Ich hoffe, dass ich dann den Zusammenhang verstehe. Ich habe es selber versucht, aber nur Errors bekommen.

Vielen Dank

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 21:35
DeddyH hat dir doch ein Beispiel gepostet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 21:37
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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#7

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 21:46
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:
// 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?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Dez 2011 um 21:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 22:01
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#9

AW: SendMail mit Anhang

  Alt 5. Dez 2011, 23:58
Nur so aus dem OFF reingeplärrt:

CC ist wohl das neue BCC der Superheimlich-Multi-Geheimagenten?
  Mit Zitat antworten Zitat
Antwort Antwort

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 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz