![]() |
Problem mit Indy SMTP und Mailinglist
So, erstma Lob an euch, klasse Forum^^. Ich soll für einen bekannten ein Programm schreiben, das Newsletter versendet. Ich habe mir überlegt, die Empfängeradressen in ne TStringlist zu packen und aus einer Text Datei zu laden. Aber wenn in der Text Datei mehr als eine Adresse steht, bekomme ich einen Fehler. Weiß jemand Rat?^^
|
Re: Problem mit Indy SMTP und Mailinglist
So so ein Spammer :twisted: ... war nur spass ... zeig mal im Code die Stelle ! ... ich muss selber gerade einen SMTP Server schreiben ^^.
|
Re: Problem mit Indy SMTP und Mailinglist
Wofür brauchste denn die Stelle? ich hab einfach nur ne Stringlist erstellt, dann die addys von der textdatei hineingeladen und als recipient meine stringlist angegeben.
|
Re: Problem mit Indy SMTP und Mailinglist
Warte .. noch mal langsam ... also du hast ne Text Datei bsp: Test.txt dort stehen jetzt die Email Adressen drin, wo die News hin sollen.
Test.txt test@test.de test2@test.de .... und wenn du dort jetzt die Liste durch gehst bekommst du den Fehler ? Oder habe das jetzt falsch verstanden ? |
Re: Problem mit Indy SMTP und Mailinglist
Genau, ich zeig dir maln paar Codeschnippsel:
Delphi-Quellcode:
...
var
fmMain: TfmMain; addys : tstringlist;
Delphi-Quellcode:
...
addys := tstringlist.create;
addys.LoadFromFile('addys.txt');
Delphi-Quellcode:
Recipients.EMailAddresses := addys.text;
|
Re: Problem mit Indy SMTP und Mailinglist
Versuch es mal so ;-)
Delphi-Quellcode:
var i: Integer; tmp, tname, taddress: String; begin ... for i := 0 to tstringlist.count -1 do begin tmp := tstringlist.Strings[i]; // Hier musste deinen Eintrag Teilen oder so // als Bsp habe ich mal ne Feste Variable hingeschrieben tname := 'John Doe'; taddress := 'jdoe@some.net'; with AMessage.Recipients.Add do begin Name := tname; Address := taddress; end; end; ... end; |
Re: Problem mit Indy SMTP und Mailinglist
Die sind ja aber nicht fest, wie mache ich das dann? :gruebel: :wiejetzt:
Naja, was solls, ich poste ma meinen quelltext, wäre nett, wenn du ihn verbessern würdest:
Delphi-Quellcode:
Wäre nett, wenn du mich in ICQ addest:
procedure TfmMain.btnSendClick(Sender: TObject);
begin addys := tstringlist.create; addys.LoadFromFile('addys.txt'); if (eduser.text = '') or (edpass.text = '') or (edsubject.text = '') or (edaddy.text = '') or (edserver.text = '') then showmessage('Please fill in all fields!'); with message1 do begin message1.Subject := edsubject.Text; Recipients.EMailAddresses := addys.text; message1.Body := memo1.lines; from.Text := edaddy.Text; with smtp do begin AuthenticationType := atlogin; SMTP.UseEhlo := True; smtp.username := eduser.text; smtp.password := edpass.Text; smtp.HeloName:= edserver.Text; smtp.host := edserver.Text; smtp.port := strtoint(edport.text); AuthenticationType := atlogin; disconnect; connect; SMTP.Send(Message1); end; end; end; 358-645-276 |
Re: Problem mit Indy SMTP und Mailinglist
So hier mal die überarbeitet Version. Musst es warscheinlich noch anpassen.
Delphi-Quellcode:
function SendNews(AddressFiles: String; Host: String; Port: Integer;
EmailMsg: String; Subject: String): Boolean; var mailList: TStringList; mess: TIdMessage; addressitem: TIdEMailAddressItem; i: Integer; idsmtpclient: TIdSMTP; begin Result := False; // Liste Init mailList := TStringList.Create; // Prüfen ob Datei gefunden wurde if not FileExists(AddressFiles) then begin raise Exception.Create('Datei nicht gefunden'); Exit; end; // Datei in die Liste LAden mailList.LoadFromFile(AddressFiles); // IdMess erstellen (Email Schablone) mess := TIdMessage.Create(nil); // Liste dürchgehen und in die Email Schablone eintragen for i := 0 to mailList.Count - 1 do begin // PRüfen ob die Mail Adresse ok ist if Pos('@', mailList.Strings[i]) > 0 then begin // Neues Item in die Mailschablone hinzufügen addressitem := mess.Recipients.Add; // Adresse ins Item eintragen addressitem.Address := mailList.Strings[i]; end; end; // Thema setzten mess.Subject := Subject; // Inhalt setzten mess.Body.Add(EmailMsg); // Update die Quell Adresse mess.From.Address := 'Deine Email'; // SMTP Client erstellen idsmtpclient := TIdSMTP.Create(nil); try try // Ziel Setzten idsmtpclient.Host := Host; idsmtpclient.Port := Port; // Verbinden idsmtpclient.Connect; // Senden idsmtpclient.Send(mess); // Trennen idsmtpclient.Disconnect; except raise Exception.Create('Fehler beim Senden.'); end; Result := True; finally idsmtpclient.Free; end; mess.Free; mailList.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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