Autor Beitrag
Olli_Sahr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 83


D5 Prof, D7 Architect
BeitragVerfasst: Sa 13.05.06 21:42 
Liebes Delphi Forum,

ich habe einen Newsletter-Versand programmiert.
Dazu habe ich Delphi 7 Enterprise Edition verwendet und die in Delphi installierten INDY Komponten (glaube die sind Version 9).

Ich habe ein Formular, mit mehreren Eingabefeldern.

Man kann zuerst mal alle benötigten Daten des SMPT Servers eingeben (Server, Port, Autentifizierung erforderlich, Username und Passwort).
Man kann auch die die Anzahl der Mails, die pro Minute versendet werden sollen, eingeben.
Ebanso kann man den Absendernamen und die Absender-Emailadresse eingeben.
Man kann zwischen HTML und normalem Format wählen.
Man kann natürlich auch den Betreff und den Nachrichtentext eingeben.
Das Senden kann man simulieren (dazu wird der Komplette Versand durchgegangen, alle Schritte und Ausgaben werden gemacht, nur das Versenden selber wird nicht gemacht).
Und man kann sich selber (dem Absender) ebenfalls eine Kopie der Mail zukommen lasssen.
Man hat ebenfalls eine Schaltfläche, mit der man sich den Newsletter erst mal testweise selber schicken kann (er wird also nicht an die anderen User geschickt).

Im unteren Bereich des Formulares habe ich ein Protokoll-Memo, in das jeder Schritt mitprotokolliert wird.

Die Daten (Emailadressen der Empfänger) kommen aus einer Datenbank und werden temporär in eine Stringliste geschrieben.
Auch das ermitteln der relevanten Emailadressen wird in diesem Log ausgegeben (also warum Max Mustermann auf seine Emailadresse 1 den Newsletter bekommt und warum er ihn nicht an seine Emailadresse 2 geschickt bekommt).
Wie die Daten aber aus der Datenbank in die Stringliste kommen ist nicht Teil des Beitrags (das würde den Rahmen sprengen und daher habe ich es weggelassen).

Damit das Senden einer bestimmten Anzahl von Mails pro Minute funktioniert, arbeite ich mit einem Timer.
Ich versende einen Block von Mails (bei ButtonKlick auf Senden).
In der Procedure, die den Block sendet, wird geprüft, ob alle Mails abgearbeitet sind.
Wenn ja, dann deaktiviere den Timer.

Die Konstante TBST_TRENNLINIE ist einfach eine Trennline (ein String "---------").

Hier nun der komplette Code:

Moderiert von user profile iconChristian S.: Als Anhang eingefügt

Miene Fragen an das Forum:

Wie kann ich an den Newsletter noch Dateien (PDF Dokumente) hinhängen?

Ich habe meinen Code anhand von anderen Forenbeiträgen und anderen Quellen zusammengebastelt.
Ich habe die Anwenudng auch gestestet (habe mehrere Emailadressen) und es scheint alles einwandfrei zu funktionieren.
Aber irgendwie traue ich dem Frieden nicht so ganz.
Ich fürchte ich habe irgendwo noch einen richtigen Bock drinnen, den ich einfach übersehen habe (da ich nicht so erfahren bin).
Ist dem so?
Entdeckt ihr irgendwo Fehler?
Mir ist klar, dass mein Code nicht der sauberste und beste ist (habe kaum OOP drinnen), aber wichtig ist, dass es funktioniert...

Danke für Eure Hilfe!


Gruß


OLLI
Einloggen, um Attachments anzusehen!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 13.05.06 23:11 
Hallo!

Es ist wenig sinnvoll, soviel Code zu posten. Das liest sich keiner durch. Du solltest daher die für dieses Problem wesentlichen Stellen des Code auswählen. Bis dahin habe ich den Code mal als Anhang eingefügt.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".