Textmail mit Anhang versenden?

Alle Fragen zur Netzwerkkommunikation
TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

hallo zusammen,

ich bin hier grade etwas am verzweifeln. Also ich muss aus unserer Anwendung textmails versenden. Nun ich habe mit Lazarus noch nie eine email versendet :(

gibt es da irgendwelche beispiele?
nach was muss ich da suchen?

ich habe hier nach smtp gesucht bin hier aber nocht so ernsthaft weitergekommen :(
und das schlimme ist ich weiß noch garnicht wie ich dann automatisch anhänge dranhängen soll :(

wo finde ich bespiele?
nach was muss ich suchen?

viele Grüße
:)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Textmail mit Anhang versenden?

Beitrag von mschnell »


TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

sooo ich habe nun erstmal Sysnapse gefunden

und dazu ein beispiel:
http://wiki.freepascal.org/Synapse

nun muss ich noch rausfinden wie ich einen anhang dranbekomme?
hat da jemand ein beispiel zu?

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Textmail mit Anhang versenden?

Beitrag von theo »

TT73GP7 hat geschrieben:sooo ich habe nun erstmal Sysnapse gefunden

und dazu ein beispiel:
http://wiki.freepascal.org/Synapse

nun muss ich noch rausfinden wie ich einen anhang dranbekomme?
hat da jemand ein beispiel zu?


Steht ja in der von dir verlinkten Seite.
http://wiki.freepascal.org/Synapse#Sending_attachments

Resp: http://synapse.ararat.cz/doku.php/publi ... :tmimepart

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

hach anfangs klang alles so einfach :(

so ich habe nun das beispiel genommen aus dem Link
dazu habe ich eben bei 1und1 eine email adresse angelegt

so die email adresse geht auch
kann mich da einloggen alles gut

nur irgendwie kann sich das skript nicht einloggen :(
ich bekomme null fehlermeldung

es wird immer dieser Teil hier übersprungen :

Code: Alles auswählen

 
    if SMTP.Login then
    begin
      result := SMTP.MailFrom(MailFrom, Length(MailData)) and
                SMTP.MailTo(MailTo) and
                SMTP.MailData(sl);
      SMTP.Logout;
    end;
 


in den Variablen steht das richtige drin
also was mache ich falsch?


Code: Alles auswählen

 
function SendMail(MailTo, MailData: string): Boolean;
var
  SMTP          : TSMTPSend;
  sl            : TStringList;
  User          : String;
  Password      : String;
  MailFrom      : String;
  SMTPHost      : String;
  SMTPPort      : String;
 
begin
  User          := SQLData.Data.MailUser;
  Password      := SQLData.Data.MailPassword;
  MailFrom      := SQLData.Data.MailFrom;
  SMTPHost      := SQLData.Data.SMTPHost;
  SMTPPort      := SQLData.Data.SMTPPort;
 
 
  Result := False;
  SMTP   := TSMTPSend.Create;
  sl     := TStringList.Create;
  try
    sl.text:=Maildata;
    SMTP.UserName:=User;
    SMTP.Password:=Password;
    SMTP.TargetHost:=SMTPHost;
    SMTP.TargetPort:=SMTPPort;
    SMTP.AutoTLS:=true;
    if Trim(SMTPPort)<>'25' then
      SMTP.FullSSL:=true; // if sending to port 25, don't use encryption
    if SMTP.Login then
    begin
      result := SMTP.MailFrom(MailFrom, Length(MailData)) and
                SMTP.MailTo(MailTo) and
                SMTP.MailData(sl);
      SMTP.Logout;
    end;
  finally
    SMTP.Free;
    sl.Free;
  end;
end;
 
 

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Textmail mit Anhang versenden?

Beitrag von af0815 »

Schon mal versucht dich mit einem Terminal mit den Daten einzuloggen ? Da siehst du dann genau warum dich der Server nicht reinlässt, denn danach sieht es aus, wenn er über diesen Teil springt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Textmail mit Anhang versenden?

Beitrag von creed steiger »


TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

af0815 hat geschrieben:Schon mal versucht dich mit einem Terminal mit den Daten einzuloggen ? Da siehst du dann genau warum dich der Server nicht reinlässt, denn danach sieht es aus, wenn er über diesen Teil springt.



das ist eine gute idee
ich prüfe das gleich nachen essen mal nach

ich würde halt gerne nee meldung haben :(

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

also

essen war lecker und nun habe ich auch eine Fehlermeldung :)

Code: Alles auswählen

 
Ausnahme beim Aufrufen von "Send" mit 4 Argument(en)"Für den SMTP-Server ist eine sichere Verbindung erforderlich, o
der der Client wurde nicht authentifiziert. Die Serverantwort war: Authentication required"

Bei Zeile:1 Zeichen:17
+ $SMTPClient.Send <<<< ($EmailFrom, $EmailTo, $Subject, $Body)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
 


joar liegt wohl am Server
die frage ist nun wie stelle ich eine Sichereverbindung her?

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

wenn ich das richtig verstanden habe wünscht sich der spass SSL

hab ich ja da der Port nicht 25 ist

SMTP.FullSSL:=true; // if sending to port 25, don't use encryption

oder bin ich da aufn holzweg?
mein Port den ich setze ist 587

vorallen wie sind da eigentlich die telnet befehle um sowas gegenzuprüfen?
ich habe das grade alles in powershell gemacht

und das war nee reine tiporgie

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Textmail mit Anhang versenden?

Beitrag von theo »

Für SSL musst du z.B. ssl_openssl in die Uses aufnehmen.
Die Lib/DLL muss natürlich da sein.

http://synapse.ararat.cz/doku.php/publi ... :sslplugin

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

hey Theo,

ssl_openssl ist drin und ist auch da

aber das würde er ja auch anmeckern wenn sie nicht da wäre
ich rufe es ja auf

die meldung mit der sicheren verbindung kommt weil ich mich per powershell eingeloggt habe
lazarus gibt mir leider nix zurück :(

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

ok an den Parametern kann es nicht liegen :(

also per Powershell geht es mit genau den Einstellungen :(
aber in Programm selber überspringt er immer noch diese Stelle:

Code: Alles auswählen

 
    if SMTP.Login then
    begin
      result := SMTP.MailFrom(MailFrom, Length(MailData)) and
                SMTP.MailTo(MailTo) and
                SMTP.MailData(sl);
      SMTP.Logout;
    end;   
 


Die werte stehen auch alle richtig in den Variablen drin

Code: Alles auswählen

 
uses
  Classes,
  smtpsend,
  ssl_openssl,
  SQLData,
  SysUtils,
  FileUtil,
  Forms,
  Controls,
  Graphics,
  Dialogs,
  StdCtrls;
 


Code: Alles auswählen

 
function SendMail(MailTo, MailData: string): Boolean;
var
  SMTP          : TSMTPSend;
  sl            : TStringList;
  User          : String;
  Password      : String;
  MailFrom      : String;
  SMTPHost      : String;
  SMTPPort      : String;
 
begin
  User          := SQLData.Data.MailUser;
  Password      := SQLData.Data.MailPassword;
  MailFrom      := SQLData.Data.MailFrom;
  SMTPHost      := SQLData.Data.SMTPHost;
  SMTPPort      := SQLData.Data.SMTPPort;
 
 
  Result := False;
  SMTP   := TSMTPSend.Create;
  sl     := TStringList.Create;
  try
    sl.text        := Maildata;
    SMTP.UserName  := User;
    SMTP.Password  := Password;
    SMTP.TargetHost:= SMTPHost;
    SMTP.TargetPort:= SMTPPort;
    SMTP.AutoTLS   := True;
    if Trim(SMTPPort)<>'25' then
      SMTP.FullSSL:=true; // if sending to port 25, don't use encryption
    if SMTP.Login then
    begin
      result := SMTP.MailFrom(MailFrom, Length(MailData)) and
                SMTP.MailTo(MailTo) and
                SMTP.MailData(sl);
      SMTP.Logout;
    end;
  finally
    SMTP.Free;
    sl.Free;
  end;
end;
 


und weils so schön ist das Powershell script

Code: Alles auswählen

 
PS C:\Users\admin> $EmailFrom = "test@test.de"
PS C:\Users\admin> $EmailTo = "ziel@schlumpfhausn.de"
PS C:\Users\admin> $Subject = "Testmail"
PS C:\Users\admin> $Body = "bla bla"
PS C:\Users\admin> $SMTPServer = "smtp.1und1.de"
PS C:\Users\admin> $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
PS C:\Users\admin> $SMTPClient.EnableSsl = $true
PS C:\Users\admin> $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("test@test.de","passwort");
PS C:\Users\admin> $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
 


ich bin grade echt ratlos
was könnte ich denn noch probieren?
was habe ich übersehen?

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Textmail mit Anhang versenden?

Beitrag von theo »

TT73GP7 hat geschrieben:
aber das würde er ja auch anmeckern wenn sie nicht da wäre
ich rufe es ja auf


Nicht unbedingt. Bist du auf Windows? Hast du die passende DLL?
http://synapse.ararat.cz/files/crypt/

TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

Re: Textmail mit Anhang versenden?

Beitrag von TT73GP7 »

ja bin grade mit windows unterwegs

mal nee dumme frage?
wo müssen denn die DLL liegen?

weil die liegen nicht in entwicklungsvereichniss sondern in den Komponenten ordner?
ich habe den Pfad bei dem entwicklungspfaden hinzugefügt :(

Antworten