iNet Smtp

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
aldi
Beiträge: 59
Registriert: Sa 26. Apr 2014, 14:03

iNet Smtp

Beitrag von aldi »

Hallo,

möchte gerne einen Text aus einem Memo versenden.
Wo finde ich ein Beispiel oder eine Anleitung zu iNet SMTP?

Gruß
Aldi

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: iNet Smtp

Beitrag von wbeppler »

hi,

ich hab mal als ich die ersten schritte mit lazarus machte paar notizen gemacht. ich hab synapse verwendet. hier mein lehrbeispiel:

Email senden mit SMTP

uses
smtpsend

installationsvoraussetzung ist synapse40, ich habe alle dateien in den projektordner kopiert weil ich noch nicht ganz verstanden habe wie ich das sonst der Lazarus-IDE beibringe


Beispiel:

Code: Alles auswählen

procedure TForm1.but_smtp_sendClick(Sender: TObject);
var
 smtp: TSMTPSend;
 sFrom: string;
 sTo: string;
 sMessage: string;
 msg_lines: TStringList;
 sSubject:string;
begin
msg_lines := TStringList.Create;
smtp := TSMTPSend.Create;
 sFrom := 'info@wolftec.biz';
 sTo := 'esmog@wolftec.biz';
 sMessage:='inhalt';
 sSubject:= 'betreff';
 
//   msg_lines.LoadFromFile(sFileName);
// Beispiel einer Email-Datei:
// C: From: "Bob Example" <bob@example.org>
//C: To: "Alice Example" <alice@example.com>
//C: Cc: theboss@example.com
//C: Date: Tue, 15 January 2008 16:02:43 -0500
//C: Subject: Test message
//C:
//C: Hello Alice.
 
// kann eingelesen werden mit:
//   msg_lines.LoadFromFile(sFileName);
 
// wird erweitert mit:
 
  msg_lines.Insert(0, 'From: ' + sFrom);
  msg_lines.Insert(1, 'To: ' + sTo);
   msg_lines.Insert(2, 'Subject: ' + sSubject);
 
try
  smtp.UserName := 'username';
  smtp.Password :=  'password';
  smtp.TargetHost := 'smtp.mailserver.de';
  smtp.TargetPort := '587';
 
 
 
  ShowMessage('SMTP Start');
  if not smtp.Login() then
     ShowMessage('SMTP ERROR: Login:');
// nur wenn TLS verschluesselungs-funktionen vom system unterstuetzt werden !!!
//    if not smtp.StartTLS() then
//       ShowMessage('SMTP ERROR: StartTLS:');
  if not smtp.MailFrom(sFrom, Length(sFrom)) then
    ShowMessage('SMTP ERROR: MailFrom:');
  if not smtp.MailTo(sTo) then
     ShowMessage('SMTP ERROR: MailTo:');
  if not smtp.MailData(msg_lines) then
     ShowMessage('SMTP ERROR: MailData:');
  if not smtp.Logout() then
     ShowMessage('SMTP ERROR: Logout:');
 
 
    ShowMessage('fertig');
finally
  smtp.Free;
end;
end;      
 
vieleicht hilft es dir ja, sonst schmeiss weg

gruss

wolfgang :-)
Zuletzt geändert von Lori am Di 4. Nov 2014, 21:05, insgesamt 1-mal geändert.
Grund: Highlighter

aldi
Beiträge: 59
Registriert: Sa 26. Apr 2014, 14:03

Re: iNet Smtp

Beitrag von aldi »

Hallo Wolfgang,

habe Deinen Quelltext übernommen und angepasst, Synapse 40 habe ich eingebunden.
In Lazarus gibt es auch keine Fehlermeldung.

Leider kommt die E-mail nicht an. Hast Du vielleicht noch eine Idee?

Danke für Deine Hilfe :-)

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: iNet Smtp

Beitrag von Michl »

Ich habe jetzt weder den Code im Detail angeschaut, doch wenn Du Synapse nehmen willst, kannst Du auch "SendToEx" benutzen:
http://synapse.ararat.cz/doc/help/smtpsend.html
Bei möglichen Fehlerursachen hilft Dir evtl. dieser Thread: http://www.lazarusforum.de/viewtopic.php?f=26&t=2320

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: iNet Smtp

Beitrag von wbeppler »

hi,

zu deiner frage "leider kommt die email nicht an..." folgendes:

einige emailserver verlangen vor dem versand von email zwingend ein login beim pop / pop3 postfach und versenden sonst nichts. das ist so ein notgedrungenes sicherheits-patch aus der vergangenheit. wegen des doppelten login soll es schwieriger gemacht werden den email-sender fuer spam zu misbrauchen. koennte also hieran liegen, schliesslich solltest du sonst ne fehlermeldung kriegen.

was fuer ein smtp hast du ? bist du unter linux oder windoof ?

gruss

wolfgang :-)

Antworten