Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi Email (https://www.delphipraxis.net/148577-delphi-email.html)

xxsasch4xx 4. Mär 2010 14:21


Delphi Email
 
kann man sich von einem delphi programm durch einen klick auf den button eine email zuschicken lassen mit anhang eines bildes?

dominikkv 4. Mär 2010 14:24

Re: Delphi Email
 
Kommt drauf an, wie du das haben willst.

Email schicken über ein anderes EMailprogramm?
-> ShellExecute(0, 'open', 'mailto:bla@blub.de' usw);
-> MAPI

EMail schicken über eigenes Programm:
-> Indys
-> Diverse Komponenten

manfred_h 4. Mär 2010 14:35

Re: Delphi Email
 
Hallo

Für JEDI gibt es eine Demo "JvMail"

Shalom
Manfred

Andidreas 4. Mär 2010 14:51

Re: Delphi Email
 
über die TIdSMTP kannst alles machen was du möchtest

Delphi-Quellcode:
var
idAttachment : TIdAttachmentFile;
idMessage    : TIdMessage;
SMTP         : TIdSMTP;

begin

  Result := True;

  //Create TIdSMTP and TIdMessage Componente
  SMTP := TIdSMTP.Create();
  idMessage := TIdMessage.Create();

  //Configure SMPTP
  SMTP.Host := sHost;
  SMTP.Username := sUsername;
  SMTP.Password := sPassword;
  SMTP.Port := iPort;

  //Configure idMessage
  idMessage.From.Text := sFrom;
  idMessage.Sender.Text := sSenderEMail;
  idMessage.Recipients.EMailAddresses := sReceipt;
  idMessage.Subject := sSubject;

  idMessage.Body.Clear;
  idMessage.Body := strlBody;

  //Attach Files
  If sAttachment <> EmptyStr Then
  Begin
    If FileExists(sAttachment) = True Then
    Begin
      idAttachment := TIdAttachmentFile.Create(idMessage.MessageParts, sAttachment);
    End;
  End;

  //Send E-Mail
  Try
    Try
      SMTP.Connect;
      SMTP.Send(idMessage);
      SMTP.Disconnect;
    Except
      Result := False;
      If SMTP.Connected = True Then
      Begin
        Try
          SMTP.Disconnect;
        Except
          MessageDlg('Could not disconnect from the E-Mail Server: ' + sHost, mtError, [mbOK], 0);
        End;
      End;
      MessageDlg('Could not send E-Mail to: ' + sReceipt, mtError, [mbOk], 0);
    End;
  Finally
    //Destroy TIdSMTP and TIdMessage Componente
    SMTP.Free;
    idMessage.Free;
  End;

DeddyH 4. Mär 2010 15:05

Re: Delphi Email
 
Aber dann bitte die Vergleiche auf true weglassen.

Sherlock 4. Mär 2010 15:11

Re: Delphi Email
 
Zitat:

Zitat von DeddyH
Aber dann bitte die Vergleiche auf true weglassen.

Weglassen wäre etwas...übereifrig. Sinnvoll ersetzen dürfte es besser treffen.
;)


Sherlock

DeddyH 4. Mär 2010 15:12

Re: Delphi Email
 
Ich meinte natürlich das "= true" und nicht die komplette Zeile :zwinker:

Andidreas 5. Mär 2010 11:07

Re: Delphi Email
 
was spricht denn bitte dagegen zu prüfe ob das attachment das hinzugefügt werden soll auch wirklich existiert???

SirThornberry 5. Mär 2010 11:13

Re: Delphi Email
 
Dagegen spricht nichts. Was damit gemeint ist:
True ist eine Constante welche 1 ist
In der IT ist jedoch alles ungleich 0 Wahr.
Niemand garantiert dir also das FileExists und andere Funktionen wirklich 1 (also True) im Erfolgsfall zurück geben. Definiert ist lediglich, dass sie "Wahr" zurückgeben, also ungleich 0.

[Edit]
also entweder so:
Delphi-Quellcode:
if FunktionWithBooleanResult() then
...
oder
Delphi-Quellcode:
if FunktionWithBooleanResult() <> False then
...

Bernhard Geyer 5. Mär 2010 14:10

Re: Delphi Email
 
Zitat:

Zitat von SirThornberry
Dagegen spricht nichts. Was damit gemeint ist:
True ist eine Constante welche 1 ist
In der IT ist jedoch alles ungleich 0 Wahr.
Niemand garantiert dir also das FileExists und andere Funktionen wirklich 1 (also True) im Erfolgsfall zurück geben. Definiert ist lediglich, dass sie "Wahr" zurückgeben, also ungleich 0.

:gruebel: Geht du hier nicht von einer schlechten C--Definiton der Art:

Code:
False = 0;
True = 1;
i.d.R macht man hier

Code:
False = 0;
True = !False;

DeddyH 5. Mär 2010 14:31

Re: Delphi Email
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var test: Boolean;
begin
  test := Boolean(10);
  if test then
    ShowMessage('Jepp');
  if test = true then
    ShowMessage('Auch jepp');
end;
Was wird hier wohl ausgegeben?

s.h.a.r.k 5. Mär 2010 14:32

Re: Delphi Email
 
Etwas OT, aber ich kann es nicht sein lasesn :mrgreen: Hängt doch den Warum-Kein-Vergleich-mit-True-machen-Thread bitte an jeden Thread an :zwinker: Sonst wird noch 20 mal darüber diskutiert, warum man das nicht machen sollte.

DeddyH 5. Mär 2010 14:38

Re: Delphi Email
 
Könnte man fast tun, da man ja fast täglich darauf hinweisen muss.

s.h.a.r.k 5. Mär 2010 14:51

Re: Delphi Email
 
Leider nochmals etwas OT :oops: warum nicht gleich ein Kompendium von Do und Don'ts zusammenstellt. Ich denke, dass da einige sinnvolle Beiträge dabei heraus kommt würde. Anfänglich eben Standard-Sachen, was man beachten sollte bei Booleans, String-Konkatenation und so kleineres Zeugs. Bei den heutigen Büchern geht es meist kaum mehr um die Basics sondern nur noch, warum man welche Klasse von welcher ableitet. Ich vermisse sowas wie "Wie genau wird mit Pointern umgegangen" (wichtig für die Windows-API, gab es ja neulich mal einen Thread dies bzgl.) oder "Wie werden Variablen/Objekte im Speicher gehalten und bei Operationen verändert".

Bernhard Geyer 5. Mär 2010 14:56

Re: Delphi Email
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
  test := Boolean(10);
Was wird hier wohl ausgegeben?

Bei solchen geschützen schmeiß ich mal ein {$R+} in den Ring.
Unsere Entwicklung läuft nur damit um solche Zuweisungen die Datenmüll erzeugen zu verhindern.

Andidreas 9. Mär 2010 10:30

Re: Delphi Email
 
@s.h.a.r.k.: kannst du wirklich mal bitte nen link zu dem thread reinhängen? danke!

Matze 9. Mär 2010 10:42

Re: Delphi Email
 
Über den Umgang mit Boolean

Und jetzt aber genug OT: :warn:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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