Link: Wichtiger Hinweis in eigener Sache!
| Autor: Klaus Keller | Erstellt am: 2003-06-01 | Geändert am: 2006-08-12 | Aufrufe: 9992 |
Tipp 36: Newsletter
Newsletter sind eine hervorragende Möglichkeit, um Neuigkeiten an Interessierte weiterzugeben. In diesem Tipp möchte ich Ihnen aufzeigen, wie Sie Newsletter an Interessierte versenden können.
Es gibt 2 Bereiche, die ich Ihnen hier vorstellen möchten. Der erste Bereich ist der öffentliche Teil. Dieser beinhaltet lediglich 2 Formulare, um sich ein- und auszutragen. Der 2te Bereich beinhaltet die Administrator-Seite, durch die der Newsletter versandt wird. Ich habe mich bei allen Seiten auf ein Minimum an Ausstattung und Extras beschränkt. Denn ein Newsletter, vor allem die Admin-Seiten, kann sehr umfassend sein.
Z.B. kann man einen den Besuchern anbieten, Interessens-Bereiche auszuwäheln. Für den Administrator eine Auswahl der Email-Komponente und noch viele andere Dinge.
Sehr wichtig ist auch das rechtliche, wozu Sie auch teilweise verpflichtet sind! Allerdings kann ich hier nur einige Empfehlungen geben. Diese Empfehlungen sind ohne Gewähr, aufgrund von event. Gesetzesänderungen. Die Empfehlungen habe ich in jedem Bereich des Newsletters dargestellt.
Bevor die Datenbank erstellt wird, müssen zuerst einmal alle Ordner erstellt werden, die Ordnerstruktur sieht so aus:
 Falls Sie die Ordner und Dateien nicht selbst erstellen möchten, können Sie diese hier herunterladen. Die Dateien beinhalten allerdings keinen Quellcode, das vollständige Projekt können Sie am Seitenende herunterladen.
Die Datenbank Als Datenbank wird eine Access-Datenbank verwendet. Je nach Anzahl der eingetragenen Adressen kann u.U. ein Umstieg auf ein Professionelleres System empfehlenswert sein, denn mit einer sehr grossen Anzahl von Datensätzen leidet die Geschwindigkeit.
Wie auch mit den ASP-Seiten habe ich mich bei der Datenbank auf das absolute Minimum beschränkt. Denn mit diesen Skripts und der Datenbank möchte ich Ihnen eine Grundlage für Ihren Newsletter vorstellen. In der Datenbank wird nur eine Tabelle benötigt, diese lautet "tblNewsletter".
In der Tabelle werden nur 2 Felder erstellt: NewsletterID, Felddatentyp: Autowert. In der oberen Leiste sehen Sie ein Schlüsselsymbol, klicken Sie darauf, um dieses Feld als Primärschlüssel festzulegen. Newsletter_Email, Felddatentyp: Text. Im unteren Bereich geben Sie bitte als Feldgrösse 255 an. Anschliessend die Tabelle mit dem Namen "tblNewsletter" abspeichern. Das wars mit der Datenbank!
Der öffentliche Bereich In dieser Seite kann der Besucher seine Email-Adresse ein- oder austragen. Der einfachheit halber wird nur die Email-Adresse angegeben. Natürlich können Sie hier den Namen noch mit einbauen, um den Besucher per Namen ansprechen zu können.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
| <% @ Language="VBScript" LCID = 1031 %><% Option Explicit Response.Buffer = true Session.LCID = 1031 Session.Timeout = 30 %> <html> <head> <title>Newsletter</title> <style> body{font-family:arial;font-size:13px;} font{font-family:arial;font-size:13px;} th{background-color:#909090;font-size:18px;color:#ffd700;} td{background-color:#ffd700;font-size:14px;color:#404040;} .Fehler1{font-size:15px;color:#e01010;font-weight:bold;} .Fehler2{font-size:13px;color:#e01010;} </style> </head> <body> <% Public Job, EmailEintrag, EmailAustrag, FehlerAustrag, FehlerEintrag, EintragOK, AustragOK
Job = Request("Job") EmailEintrag = left(Request("EmailEintrag"),255) EmailAustrag = left(Request("EmailAustrag"),255)
Select Case Job Case "Eintrag" If CheckEmail(EmailEintrag) Then Call NewsletterEintrag else FehlerEintrag = true Call Formular() End if Case "Austrag" If CheckEmail(EmailAustrag) Then Call NewsletterAustrag else FehlerAustrag = true Call Formular() End if Case Else Call Formular() End Select
%> </body> </html><%
Public Sub Formular() %><br><br><br>
<% If EintragOK Then %> <p align=center><font class="fonth3"><b> Vielen Dank für Ihr Interesse! Ihre Adresse wurde eingetragen. </b></font></p> <% end if %> <% If FehlerEintrag Then %> <p align=center><font class="fehler1"> Leider ist ein Fehler aufgetreten, bitte prüfen Sie Ihre Angaben. </font></p> <% end if %> <table align=center border="1" bordercolor="#606060" cellspacing="0"> <tr> <th colspan=2> Anmelden für den Newsletter </th> </tr> <form action="Newsletter.asp" method="post" id=form2 name=form2> <tr> <td align=center> Ihre Email-Adresse:</td> <td> <input type="text" name="EmailEintrag" id="EmailEintrag" value="<%=EmailEintrag %>" size="20"> </td> </tr> <tr> <td colspan=2 align=center> <input type="submit" name="Submit" id="Submit" value="Anmelden"> <input type="hidden" name="Job" id="Job" value="Eintrag"> </td> </tr> </form> </table>
<br><br><br><br><br><br> <% If AustragOK Then %> <p align=center><font class="fonth3"><b> Das löschen Ihrer Email-Adresse wurde erfolgreich durchgeführt. Vielen Dank für Ihr Interesse, natürlich freue ich mich über Ihren Besuch auf meinen Seiten! </b></font></p> <% End if %> <% If FehlerAustrag Then %> <p align=center><font class="fehler1"> Leider ist ein Fehler aufgetreten, bitte prüfen Sie Ihre Angaben. </font></p> <% end if %> <table align=center border="1" bordercolor="#606060" cellspacing="0"> <tr> <th align=center colspan=2> Newsletter abbestellen </th> </tr> <form action="Newsletter.asp" method="post" id=form2 name=form2> <tr> <td>Ihre Email-Adresse:</td> <td> <input type="text" name="EmailAustrag" id="EmailAustrag" value="<%= EmailAustrag %>" size="20"> </td> </tr> <tr> <td colspan=2 align=center> <input type="submit" name="Submit" id="Submit" value="Abbestellen"> <input type="hidden" name="Job" id="Job" value="Austrag"> </td> </tr> </form> </table> <br><br><br> <b>Hinweis zum Newsletter:</b><br> Ihre Daten werden nur für den Versand des Newsletters gespeichert, Ihre Daten werden nicht für andere Tätigkeiten verwendet, verarbeitet oder weitergegeben. Bei jedem Newletter ist ein Link, mit dem Sie den Newsletter abbestellen können. Den Newsletter können Sie aber auch hier abbestellen, danach werden Ihre Daten dauerhaft gelöscht. <% End Sub
Public Sub NewsletterAustrag Dim rs, strConn set rs = Server.CreateObject("ADODB.Recordset") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("~db\Newsletter.mdb") rs.Open "Select * from tblNewsletter Where Newsletter_Email = '" & _ EmailAustrag & "'", strConn, 3, 3 If not rs.EOF Then rs.Delete rs.Update End if rs.Close set rs = nothing AustragOK = true Call Formular() End Sub
Public Sub NewsletterEintrag Dim rs, strConn set rs = Server.CreateObject("ADODB.Recordset") strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("~db\Newsletter.mdb") rs.Open "Select * from tblNewsletter Where Newsletter_Email = '" & _ EmailEintrag & "'", strConn, 3, 3 If rs.EOF Then rs.AddNew rs.fields("Newsletter_Email").value = EmailEintrag rs.Update End if rs.Close set rs = nothing EintragOK = true Call Formular() End Sub
Public Function CheckEmail(ByVal PruefAdresse) '================================================================================== 'Name und Version 'CheckEmail <-> Version 1.41, letzte Änderung am 2004-03-07 '---------------------------------------------------------------------------------- 'Beschreibung: 'Prüft ob eine Email-Adresse korrekt ist. Geprüft wird auf die TopLevel-Domain '(TLD) wie z.B. de, at, com usw. Teilweise wird auch geprüft, ob einige Zeichen 'dem vorgeschriebenem Zeichensatz entsprechen. 'Mehr Infos hierzu unter http://www.asphelper.de/tip/tip18.asp '---------------------------------------------------------------------------------- 'Parametername Datentyp Verwendung 'PruefAdresse String Zu prüfende Email-Adresse '---------------------------------------------------------------------------------- 'Rückgabewert 'Datentyp: Boolean 'Beschreibung: true, falls Email-Adresse korrekt. false, falls Email-Adresse nicht 'korrekt. '---------------------------------------------------------------------------------- 'Copyright ©2001-2004 Klaus Keller 'Dieses Skript ist ein Computerprogramm das lt. §69UrhG Urheberrechtlichen Schutz 'geniesst und darf nicht als eigenes Programm ausgegeben werden. Das Anbieten 'zum Download bedarf der Zustimmung. Alle Skripte wurden mit grösstmöglicher Sorgfalt 'entwickelt, sollten dennoch Fehler enthalten sein, wird keine Haftung übernommen, 'weder für direkt noch indirekt entstehende Schäden. ' 'Klaus Keller 'http://asphelper.de '==================================================================================== Dim strDomains, arrDomains, i, Adresse, Laenge, Flag, SetAt Dim SetAtPlace, Character, ASCII, ix SetAt = false PruefAdresse = LCase(PruefAdresse) PruefAdresse = Replace(PruefAdresse, "ß", "ss") Laenge = len(PruefAdresse) If Laenge > 0 Then If instr(2,PruefAdresse,"@") > 0 Then If instr(instr(1,PruefAdresse,"@")+ 3,PruefAdresse,".") > 0 then Adresse=Right(PruefAdresse,Laenge-InstrRev(PruefAdresse,".",-1)) arrDomains = Array("de","at","ch","com","org","net","aero", _ "ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar", _ "arpa","as","au","aw","az","ba","bb","bd","be","bf","bg", _ "bh","bi","biz","bj","bm","bn","bo","br","bs","bt","bv", _ "bw","by","bz","ca","cc","cd","cf","cg","ci","ck","cl", _ "cm","cn","co","coop","cr","cu","cv","cx","cy","cz","dj", _ "dk","dm","do","dz","ec","edu","ee","eg","eh","er","es", _ "et","eu","fi","fj","fk","fm","fo","fr","ga","gd","ge", _ "gf","gg","gh","gi","gl","gm","gn","gov","gp","gq","gr", _ "gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu", _ "id","ie","il","im","in","info","io","iq","ir","is","it", _ "je","jm","jo","job","jp","ke","kg","kh","ki","km","kn","kp", _ "kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls", _ "lt","lu","lv","ly","ma","mc","md","mg","mh","mk","ml", _ "mm","mn","mo","mobi","mp","mq","mr","ms","mt","mu","museum", _ "mv","mw","mx","my","mz","na","name","nc","ne","nf","ng", _ "ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg", _ "ph","pk","pl","pm","pn","pr","pro","ps","pt","pw","py", _ "qa","re","ro","ru","rw","sa","sb","sc","sd","se","sg", _ "sh","si","sj","sk","sl","sm","sn","so","sr","st","su", _ "sv","sy","sz","tc","td","tf","tg","th","tj","tk","tm", _ "tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk", _ "um","us","uy","uz","va","vc","ve","vg","vi","vn","vu", _ "wf","ws","ye","yt","yu","za","zm","zr","zw") For i = 0 to Ubound(arrDomains) If arrDomains(i) = LCase(Adresse) Then Flag = true Exit For End if Next If Flag Then SetAtPlace = instr(2, PruefAdresse, "@") For ix = 1 To SetAtPlace - 1 Character = mid(PruefAdresse,ix,1) Ascii = asc(Character) If NOT (Character = "." OR Character = "_" OR _ Character = "-" OR (ASCII > 47 AND ASCII < 58) OR _ (ASCII > 96 AND ASCII < 123)) Then CheckEmail = false Exit Function End if Next CheckEmail = true Exit Function End If End if End if End if CheckEmail = false End Function %> |
Die ersten Zeilen sind Ihnen sicherlich bekannt, interessant wird es erst ab Zeile 25. Warum left? Die Datenbank hat nur ein Textfeld für die Email-Adresse, diese kann max. 255 Zeichen fassen. So wird ein Fehler unterbunden.
Von Zeilen 29 bis 46 wird geprüft, was zu tun ist. Soll eine Email-Adresse eingetragen oder ausgetragen werden, so wird die Email-Adresse geprüft. Ist die Adresse korrekt, wird die Aufgabe durchgeführt, ansonsten wird eine Fehlermeldung dargestellt.
Die Prozedur "Formular" ab Zeile 54 beinhaltet sowohl das Formular für das Eintragen einer Email-Adressen, als auch für das Austragen. Wenn ein Fehler beim Ein- und Austragen auftrat, wird eine Fehlermeldung dargestellt. Zeilen 127 bis 132 folgt ein Rechtlicher Hinweis, einen Rechtlicher Hinweis sollten Sie auf jeden Fall anbringen!
Die Prozedur NewsletterAustrag ab Zeile 138 trägt die Email-Adresse in die Datenbank ein. Wichtig hierbei: Eventuell müssen Sie noch den Pfad für die Datenbank anpassen! In der Prozedur NewsletterEintrag wird die Email-Adresse in die Datenbank eingetragen. Zuletzt folgt jene Prozedur, welche die Email-Adresse prüft. Diese habe ich Ihnen bereits in Tipp 18 vorgestellt.
Der Administrator-Bereich Dieser Bereich beinhaltet lediglich ein Eingabeformular für den Text, das Auslesen der Adressen um dann den Newsletter zu versenden. Als Email-Komponente wird JMail verwendet, natürlich müssen Sie hier ggf. eine andere Komponente verwenden.Anpassen müssen Sie in der Prozedur EmailSenden auf jeden Fall mehrere Angaben wie z.B. die Serveradresse.
Der Quellcode aus der Datei Default.asp aus dem Verzeichnis Newsletter/Admin/Newsletter/:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
| <% @ Language="VBScript" LCID = 1031 %><% Option Explicit Server.ScriptTimeout = 600 Response.Buffer = true Response.Expires=0 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-control", "no-store" Response.Buffer = true
Public Schritt, NewsletterText
Schritt = Request("Schritt") NewsletterText = Request("NewsletterText")
Select Case Schritt Case 2 if len(NewsletterText) > 0 Then Call Senden else Call Formular end if Case Else Call Formular End Select
Public Sub Formular() %><p align=center><form action="Default.asp" method="post"> <textarea rows=30 cols=75 id=NewsletterText name=NewsletterText></textarea><br> <input type="submit" name="submit1" id="submit1" value="Newsletter senden"> <input type="hidden" name="Schritt" id="Schritt" value="2"> </form></p><% End Sub
Public Sub Senden() Dim rs, strPfadDB, SQL, strText, i i = 0 strText = "anbei erhalten Sie den Newsletter von IHRE_DOMAIN.de" & vbcrlf strText = strText & NewsletterText set rs = Server.CreateObject("ADODB.Recordset") strPfadDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("..\..\~db\Newsletter.mdb") SQL = "Select * from tblNewsletter" rs.Open SQL, strPfadDB, 0, 1 Do while not rs.EOF if CheckEmail(rs.Fields("Newsletter_Email").Value) Then If EmailSenden(strText, rs.Fields("Newsletter_Email").Value) Then i = i + 1 Else Response.Write("Fehler beim EmailVersand: " & _ rs.Fields("Newsletter_Email").Value & "<br>") End if Else Response.Write("Falsche Email-Adresse: " & _ rs.Fields("Newsletter_Email").Value & "<br>") End if rs.MoveNext Loop rs.Close set rs = nothing Response.Write("<br><br>Anzahl der versandten Emails: " & i) End Sub
Public Function EmailSenden(ByRef Text, ByRef Recipient) Dim JMail Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "ServerAdresse_hier_angeben" JMail.Sender = "Info@IhreDomain.de" JMail.Subject = "Newsletter" JMail.AddRecipient Recipient JMail.Body = Text On Error Resume Next JMail.Execute If Err.number > 0 Then EmailSenden = false Else EmailSenden = true End If On Error GoTo 0 End Function
Public Function CheckEmail(ByVal PruefAdresse) '================================================================================== 'Name und Version 'CheckEmail <-> Version 1.41, letzte Änderung am 2004-03-07 '---------------------------------------------------------------------------------- 'Beschreibung: 'Prüft ob eine Email-Adresse korrekt ist. Geprüft wird auf die TopLevel-Domain '(TLD) wie z.B. de, at, com usw. Teilweise wird auch geprüft, ob einige Zeichen 'dem vorgeschriebenem Zeichensatz entsprechen. 'Mehr Infos hierzu unter http://www.asphelper.de/tip/tip18.asp '---------------------------------------------------------------------------------- 'Parametername Datentyp Verwendung 'PruefAdresse String Zu prüfende Email-Adresse '---------------------------------------------------------------------------------- 'Rückgabewert 'Datentyp: Boolean 'Beschreibung: true, falls Email-Adresse korrekt. false, falls Email-Adresse nicht 'korrekt. '---------------------------------------------------------------------------------- 'Copyright ©2001-2004 Klaus Keller 'Dieses Skript ist ein Computerprogramm das lt. §69UrhG Urheberrechtlichen Schutz 'geniesst und darf nicht als eigenes Programm ausgegeben werden. Das Anbieten 'zum Download bedarf der Zustimmung. Alle Skripte wurden mit grösstmöglicher Sorgfalt 'entwickelt, sollten dennoch Fehler enthalten sein, wird keine Haftung übernommen, 'weder für direkt noch indirekt entstehende Schäden. ' 'Klaus Keller 'http://asphelper.de '====================================================================================
Dim strDomains, arrDomains, i, Adresse, Laenge, Flag, SetAt Dim SetAtPlace, Character, ASCII, ix SetAt = false PruefAdresse = LCase(PruefAdresse) PruefAdresse = Replace(PruefAdresse, "ß", "ss") Laenge = len(PruefAdresse) If Laenge > 0 Then If instr(2,PruefAdresse,"@") > 0 Then If instr(instr(1,PruefAdresse,"@")+ 3,PruefAdresse,".") > 0 then Adresse=Right(PruefAdresse,Laenge-InstrRev(PruefAdresse,".",-1)) arrDomains = Array("de","at","ch","com","org","net","aero", _ "ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar", _ "arpa","as","au","aw","az","ba","bb","bd","be","bf","bg", _ "bh","bi","biz","bj","bm","bn","bo","br","bs","bt","bv", _ "bw","by","bz","ca","cc","cd","cf","cg","ci","ck","cl", _ "cm","cn","co","coop","cr","cu","cv","cx","cy","cz","dj", _ "dk","dm","do","dz","ec","edu","ee","eg","eh","er","es", _ "et","eu","fi","fj","fk","fm","fo","fr","ga","gd","ge", _ "gf","gg","gh","gi","gl","gm","gn","gov","gp","gq","gr", _ "gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu", _ "id","ie","il","im","in","info","io","iq","ir","is","it", _ "je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp", _ "kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls", _ "lt","lu","lv","ly","ma","mc","md","mg","mh","mk","ml", _ "mm","mn","mo","mp","mq","mr","ms","mt","mu","museum","mv", _ "mw","mx","my","mz","na","name","nc","ne","nf","ng","ni", _ "nl","no","np","nr","nu","nz","om","pa","pe","pf","pg", _ "ph","pk","pl","pm","pn","pr","pro","ps","pt","pw","py", _ "qa","re","ro","ru","rw","sa","sb","sc","sd","se","sg", _ "sh","si","sj","sk","sl","sm","sn","so","sr","st","su", _ "sv","sy","sz","tc","td","tf","tg","th","tj","tk","tm", _ "tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk", _ "um","us","uy","uz","va","vc","ve","vg","vi","vn","vu", _ "wf","ws","ye","yt","yu","za","zm","zr","zw") For i = 0 to Ubound(arrDomains) If arrDomains(i) = LCase(Adresse) Then Flag = true Exit For End if Next If Flag Then SetAtPlace = instr(2, PruefAdresse, "@") For ix = 1 To SetAtPlace - 1 Character = mid(PruefAdresse,ix,1) Ascii = asc(Character) If NOT (Character = "." OR Character = "_" OR _ Character = "-" OR (ASCII > 47 AND ASCII < 58) OR _ (ASCII > 96 AND ASCII < 123)) Then CheckEmail = false Exit Function End if Next CheckEmail = true Exit Function End If End if End if End if CheckEmail = false End Function %> |
Das Problem hierbei ist nicht die Funktionalität, denn beide Möglichkeiten funktionieren gleich. Programmierer schreiben oftmals ein Programm, "knien" sich da richtig rein. Nach dem Schreiben des Programms wissen Sie (hoffentlich) alles über das Programm. Nach Wochen oder Monaten muss etwas angepasst werden, nur dann weiss man nicht mehr, was jetzt diese Abfrage macht usw. Die Übersichtlichkeit geht verloren. Programmieren Sie deshalb so, daß Sie auch nach Wochen oder Monaten noch erkennen können, was das Programm wo macht. Und eventuell muss sich ein anderer Programmierer durch Ihr Programm bemühen, deshalb: Gleich von Anfang an übersichtlich programmieren!
Die erste Prozedur stellt das Formular dar, ein Textarea und ein Submit-Button. Das Textarea ist 75 Zeichen breit. Falls Sie schon einmal einen Newsletter erhalten haben (wie z.B. den von asphelper.de), ist Ihnen vielleicht schon aufgefallen, daß die max. Zeilenlänge gleich ist, was das Aussehen des Newsletters verbessert. Beim schreiben Ihres Newsletters sollten Sie deshalb auf die Zeilenlänge (z.B. 75 Zeichen) achten und die Zeilenumbrüche manuell einbinden.
Die nächste Prozedur "Senden" liest die Email-Adressen aus der Datenbank aus und versendet den Newsletter. Bevor der Newsletter an eine Email-Adresse gesandt wird, erfolgt nochmals eine Prüfung, diese Prüfung habe ich in Tipp 18 bereits beschrieben. Wenn Sie jedoch mit Sicherheit davon ausgehen können, daß die Email-Adressen beim Eintragen geprüft werden, so ist natürlich eine erneute Prüfung nicht erforderlich.
Für das Versenden der Email gibt es mehrere Ansätze. In diesem Beispiel wird jede Email-Adresse einzeln ausgelesen, und anschliessend wird jede Email einzeln versandt. Der Grund für diesen Ansatz ist, daß Sie den Abonnenten des Newsletters mit der Email-Adresse oder dem Namen ansprechen können. Falls jedoch der Newsletter-Text für jeden Abonnenten gleich ist, so können Sie das Programm etwas umschreiben. Der Grund dafür ist die Performance. Wenn Sie nur einige Adressen haben (z.B. mehrere Hundert), so brauchen Sie sich kaum um die Performance kümmern. Wichtig wird die Beachtung der Performance, wenn Sie mehrere Tausend oder gar mehrere Hunderttausend Adressen haben.
Zuletzt wird ausgegeben, wieviele Adressen ausgegeben wurden, und bei welchen Email-Adressen es Probleme gab. Noch ein kleiner Tipp: Eventuell sollten Sie Ihren Provider fragen, wann Sie den Newsletter versenden sollten. Das Versenden von mehreren Tausende Mails zur besten Tageszeit macht Sie nicht unbedingt beliebt bei einem Provider.
Rechtliches zum Newsletter-Versand Das ganze Rechtliche sollten Sie auf jeden Fall beachten, vorweg aber noch etwas rechtlichtes: Die Hinweise hier sind nur Empfehlungen, es entsteht daraus kein rechtlicher Anspruch. Sie sollten sich auf jeden Fall bei kundigen Stellen informieren, eventuell auch bei einem Rechtsanwalt.
Was also ist beim Versenden eines Newsletters zu beachten? Zuerst einmal muss klar erkennbar sein, wer der Absender des Newsletters ist, geben Sie hier idealerweise die Internet-Adresse an. Ausserdem müssen Sie eine Adresse angeben, in welche der Empfänger den Newsletter abbestellen kann. Idealerweise setzen Sie noch einen Link auf Ihre Internet-Seite. Bei reinen Text-Emails also mit http://www.IhreDomain.de. Die meisten Email-Programme setzen dann automatisch einen Link, nur IhreDomain.de reicht nicht.
Desweiteren sollten (müssen) Sie eine Email-Adresse angeben, zum Beispiel Newsletter@IhreDomain.de. Eine Angabe eines Impressums ist ebenfalls empfehlenswert, wenn Sie eine Firma haben, oder mehrere Mitarbeiter bei Ihrer Onlineseite haben, so sollte auch die Redaktionell Verantwortliche Person genannt werden.
Herunterladen: Newsletter_Komplett.zip
|