Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi SQL-Abfrage per EMail verschicken (https://www.delphipraxis.net/93815-sql-abfrage-per-email-verschicken.html)

AndiS75 11. Jun 2007 20:08


SQL-Abfrage per EMail verschicken
 
Hallo zusammen,

möchte gerne eine DB-Auswertung in einem Report per EMail verschicken können. Sprich ich will eine Anwendung schreiben, welche es mir ermöglicht zu einem bestimmten Zeitpunkt eine EMail zu verschicken, ohne einen bestimmtes Email Programm zu nutzen.

Also selber eine Maske erstellen mit Empfänger ... Also nicht über OLE ein bestimmtes Programm(Outlook oder David) starten.

Danke für eure Vorschläge



Gruß

Andreas

Jelly 11. Jun 2007 20:14

Re: SQL-Abfrage per EMail verschicken
 
Soll der Report direkt in die EMail rein oder als Anhang mitgeschickt werden ?

mkinzler 11. Jun 2007 20:15

Re: SQL-Abfrage per EMail verschicken
 
Such mal nach SMTP (z.B. bei den Indys)

AndiS75 11. Jun 2007 21:07

Re: SQL-Abfrage per EMail verschicken
 
Als Anhang oder in Body. Ist auch egal. Mir gehts in erster Linie nur darum, dass es möglich ist ohne OLE das Ganze zu realisieren.

Gruß

Jelly 11. Jun 2007 21:10

Re: SQL-Abfrage per EMail verschicken
 
Da wurden die Indys ja schon genannt.
Vielleicht helfen dir die MailTemplates Komponenenten aus der Codelib weiter. Basieren ebenfalls auf Indy.

AndiS75 12. Jun 2007 20:30

Re: SQL-Abfrage per EMail verschicken
 
Hm das Problem ist, dass ich von der Materie überhaupt keinen Plan hab. :-D
Gibt es Irgendwo ein Tutorial??

gruß

Jelly 12. Jun 2007 21:14

Re: SQL-Abfrage per EMail verschicken
 
Ich schau mal zu die Woche noch eine knappe Demo zu erstellen. Ist eigentlich ganz trivial, allerdings wohl nur aus meiner Sicht. :mrgreen:

Jelly 12. Jun 2007 22:11

Re: SQL-Abfrage per EMail verschicken
 
Habs dann doch noch heute geschafft.
Ein Demo Projekt hängt im Beitrag aus der Codelib an.

Das Beispiel zeigt, wie eine Mail personalisiert werden kann, wie Grafiken eingebunden werden können, und wie ganze Tabelle basierend auf TDataset eingebunden werden können. Master-Detail Beziehungen sind auch möglich, aber nicht im Demo eingebunden, dafür war die Zeit zu knapp.
Die Mailvorlage muss als HTML Datei vorliegen und heisst in der Demo MailVorlage.html.

AndiS75 13. Jun 2007 08:40

Re: SQL-Abfrage per EMail verschicken
 
Ok danke Dir erstmal. Werde heute Abend mal ne weil testen.



Gruß

AndiS75 13. Jun 2007 22:21

Re: SQL-Abfrage per EMail verschicken
 
Hallo,

hab jetzt ein bischen Code zusammengeklaut und eine Maske entworfen.
Versuche nun über die Maske auf meinen SMPT-Server zuzugreifen. Bekomme zwar keine Fehlermeldung beim senden, aber es kommt auch keine Mail an :( .

Delphi-Quellcode:


procedure TForm1.AusWertSend(an, Nachricht, vonMail, Betreff, Priority, CT, SMTPServer, SMTPUsername, SMTPPass: String;
                             SMTPPort : integer);
var
  IdMsgSend: TidMessage;
  SMTP: TidSmtp;
  POP: TidPop3;
  i: integer;
  s: string;
begin

  IdMsgSend := TidMessage.Create(nil);
  SMTP := TidSmtp.Create(nil);
  IdMsgSend.Clear;


  // Plain Text
  with TIdText.Create(IdMsgSend.MessageParts, nil) do
  begin
    ContentType := 'text/plain';
    Body.Text := Nachricht;
  end;

  // HTML Part
  with TIdText.Create(IdMsgSend.MessageParts, nil) do
  begin
    ContentType := 'text/html';
    Body.Text := 'Dateien\MailVorlage.html';
  end;

  with IdMsgSend do
  begin
    ContentType := CT;
    From.Text := vonMail;
    ReplyTo.EMailAddresses := vonMail;
    Subject := Betreff;
    Priority := Priority;
    s := '';
    BccList.EMailAddresses := an;
    ReceiptRecipient.Text := '';
  end;

  SMTP.AuthType := atDefault;

  SMTP.Username := SMTPUsername;
  SMTP.Password := SMTPPass;

  SMTP.Host := SMTPServer;
  SMTP.Port := SMTPPort;

  SMTP.Connect;

  ShowMessage(IntToStr(IdMsgSend.MessageParts.Count));
  try
    SMTP.Send(IdMsgSend);
  finally
    SMTP.Disconnect;
  end;
  IdMsgSend.free;
  SMTP.free;
 
end;

procedure TForm1.btnSendenClick(Sender: TObject);
begin
  AusWertSend(EditAdressen.Text, MemoText.Text,'Andi_S75@hotmail.de',EditBetreff.Text, 'mpnormal','BlaBlaBla',
              EditSMTP.Text,EditBenutzer.Text, EditKennwort.Text,25);

end;

Könnte sich einer bitte kurz die Mühe machen und schauen voran es liegt. Komme von selber leider nicht drauf.


Danke


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

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