# E-Mail adressen Validieren



## dadevelopa (24. November 2004)

Hi zusammen.

ist es in PHP irgendwie möglich die E-Mail adressen zu Validieren und herauszufinden, welche ein Gültiges Format haben und welche nicht?

Ausserdem? Gibt es eine maximale Anzahl von E-Mails die die Mail-Funktion verschicken kann? 
Was wenn 800 E-Mails verschikt werden müssen? Geht das damit?

Danke schonmal im voraus.


----------



## redlama (24. November 2004)

Hallo!

Schau mal hier, da wurde das Problem schon mal erörtert und gelöst!

redlama


----------



## Oliver Gringel (24. November 2004)

Es gibt bestimmt 10000 reguläre Ausdrücke für eMails im Netz Einfach mal googeln.

Eine Beschränkung bei mail() ist mir nicht bekannt, aber Massenmails wie z.B. Newsletter sollte man anders lösen, besonders, weil sonst jeder Empfänger sieht, wer die Mail sonst noch bekommen hat, und da freut sich bestimmt niemand drüber.


----------



## dadevelopa (24. November 2004)

Oliver Gringel hat gesagt.:
			
		

> Es gibt bestimmt 10000 reguläre Ausdrücke für eMails im Netz Einfach mal googeln.
> 
> Eine Beschränkung bei mail() ist mir nicht bekannt, aber Massenmails wie z.B. Newsletter sollte man anders lösen, besonders, weil sonst jeder Empfänger sieht, wer die Mail sonst noch bekommen hat, und da freut sich bestimmt niemand drüber.




Richtig, aber soweit ich weiss kann man die einzelnen E-Mail Addressen doch auch als BCC angeben oder irre ich mich da?

Ausserdem, was passiert, wenn eine ungültige E-Mail Addresse in der Liste ist?


----------



## Oliver Gringel (24. November 2004)

Stimmt, mit BCC sieht man die anderen Empfänger nicht.

Wenn eine ungültige Adresse dabei ist, wirst du ne Undelivered Mail vom Mailer-Deamon kriegen.


----------



## hpvw (24. November 2004)

Ich hatte mal zum Üben ein Skript namens mailbomb.php geschrieben (keine Angst, habe ich nur mit einem lokalen Mailserver getestet). Da hat er auf 'nem 500 Mhz Celeron pro Aufruf sicher 100 einzelne Mails, mit eigenem Empfänger geschafft. Wenn er seine 100 Mails geschickt hat, habe ich einfach eine Weiterleitung mit neuem Offset, wie bei einer Blätterfunktion aufgerufen. Damit konnte ich dann auch mit mail() beliebig viele E-Mails verschicken. Die Weiterleitung darf natürlich nicht gesendet werden, wenn der Offset größer ist als die Anzahl der Empfänger, sondern dann sollte er "Fertig" ausgeben.

Pass auf, wenn Du sowas testet. Ich habe immer an dieselbe lokale eigene E-Mail-Adresse geschickt, mein Eudora musste ich nach dem Empfang neu starten, erst beim 2. starten hat er mir die Mails angezeigt. Vorher den Incoming-Ordner leeren, sonst wird es anstrengend 30.000 Mails zu löschen, ohne eine echte zu verlieren 

Gruß hpvw


----------



## ShadowFire (24. November 2004)

hier haste ne funktion zur gültigkeitsprüfung:

```
if (preg_match ("/(^|\s)([a-zA-Z0-9_-]+)(\.[a-zA-Z0-9_-]+)*(@)([a-zA-Z0-9_-]+)(\.[a-zA-Z0-9_-]+)*(\.)([a-zA-Z]{2,4})(\s|$)/im", $emailaddr))
{
  //ok
}
```
du kannst in einer schleife soviele mails rausjagen, wie der server verkraftet.
dabei spielt natürlich die leistung der maschine die hauptrolle - demnach lässt sich das schlecht pauschalisieren


----------



## Sven Mintel (24. November 2004)

*<klugscheiss>*

```
([a-zA-Z]{2,4})
```
.... gibt es mittlerweile eigentlich schon "museum"-TLDs ? ...das wären 6 Zeichen.
*</klugscheiss>*


----------



## stathis2000 (4. Juni 2005)

* Mit dieser Funktion unten kann der User immer noch sowas "**______.----@----.xx" **unsinniges eingeben. Wie kann man den unten verwendeten Ausdruck noch verbessern? Vielleicht ne Kombination mit der herrkömmlichen Programmierung? Kann jemand helfen?

*

```
^[a-zA-z0-9-]+(\.[a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)[a-zA-Z]{2,3}$
```
* 


 Danke im Voraus
*


----------



## Mamphil (4. Juni 2005)

Hi!

Schicke dem Benutzer eine "Opt-In"-E-Mail, mit einem Bestätigungs-Link. Wenn über diesen Link bestätigt wurde, kannst du sicher gehen, dass die E-Mail-Adresse zum Zeitpunkt der Eingabe existiert.

Theoretisch könntest du die TLD der Mail-Adresse mit einer Liste aller verfügbaren TLDs abgleichen. Sobald eine neue dazu kommt, müsstest du die aber in Kleinarbeit wieder einpflegen...

Mamphil


----------



## stathis2000 (4. Juni 2005)

Danke für dein Vorschlag.
 Ich will aber das ganze eigentlich nicht praktisch lösen. Hätte vielleicht einen neues Thema beginnen sollen.

 Ich will das ganze rein theoretisch so elegant wie möglich lösen. Der reguläre Ausdruck zur E-Mail-Überprüfung würde ich gerne beibehalten, nur noch verbessern damit sowas wie oben nicht eingegeben werden darf.


----------



## Mamphil (4. Juni 2005)

Hallo,

was ist denn an dieser E-Mail-Adresse vom Prinzip her falsch?


> ______.----@----.xx


Ok, die Domain ---- unter der TLD xx wird wohl nicht existieren, aber zumindest als Empfänger-Name ist ______.---- doch ganz und gar gültig...

Mamphil


----------



## shockshell (5. Juni 2005)

Seitdem mittlerweile (leider) auch Umlaut-Domains bei E-Mailadressen verwendet werden dürfen,
fehlen bei dem Ausdruck noch die äöü und ÄÖÜ in den eckigen Klammern. Was die "Schönheit" des Ausdrucks nicht gerade fördert. Dies gilt natürlich nur bei "deutschen"-Adressen.

^[a-zA-z0-9-äöüÄÖÜ]+([a-zA-Z0-9-äöüÄÖÜ]+)*@([a-zA-Z0-9-äöüÄÖÜ]+.)[a-zA-Z]{2,3}$ 

Hatte leider schonmal diesen Fall, das jemand eine Adresse mit Umlauten besessen hat.

shockshell


----------



## Andreas Späth (5. Juni 2005)

Stimmt nicht ganz.
Gültig sind seit IDN nun auch

für .de .com und .net
à á â ã ä å ? ? ? æ ç ? ? ? ? ? ? è é ê ë ? ? ? ? ? ? ð ? ? ? ? ? ? ì í î ï ? ? ? ? ? ? ? ? ? ? ? ? ñ ? ? ? ò ó ô õ ö ø ? ? ? œ ? ? ? ? ? ? š ? ? ? þ ù ú û ü ? ? ? ? ? ? ? ý ÿ ? ? ? ž

.info
ä ö ü

.at
à á â ã ä å æ ç è é ê ë ð ì í î ï ñ ò ó ô õ ö ø oe š þ ù ú û ü ý ÿ ž

.ch und .li
à á â ã ä å æ ç è é ê ë ð ì í î ï ñ ò ó ô õ ö ø þ ù ú û ü ý ÿ


In wieweit und ob überhaupt das jetzt bei anderen Toplevel Domains geregelt ist kann ich nicht sagen, aber a-z und a,ö,ü sind nichtmehr ausreichend.
Ich persönlich halte die Versendung eines Aktivierungslinks an die angegebene eMailadresse für den einzigen sicheren und userfreundlichen weg eMailadressen zu validieren.

Der User ist das ja mitlerweile gewohnt und ich kenn keinen für den das ein Problem darstellt, auser er will eine FakeAdresse angeben


----------



## Mamphil (5. Juni 2005)

Hallo!



			
				DJ Teac hat gesagt.:
			
		

> Ich persönlich halte die Versendung eines Aktivierungslinks an die angegebene eMailadresse für den einzigen sicheren und userfreundlichen weg eMailadressen zu validieren.


Trotzdem würde ich eine ganz rudimentäre Prüfung der E-Mail-Adresse durchführen:

Enthält die Adresse GENAU ein @?
Steht hinter dem @ mindestens ein Punkt?
Evtl. kann man noch prüfen, dass hinter dem @ nicht zwei Punkte hintereinander erscheinen dürfen.

Aber mehr würde ich nicht Prüfen...

Mamphil


----------



## Andreas Späth (5. Juni 2005)

Mamphil hat gesagt.:
			
		

> Evtl. kann man noch prüfen, dass hinter dem @ nicht zwei Punkte hintereinander erscheinen dürfen.


 
Also ich kann bei mir auch eMailadressen aller name@subdomain.domain.tld einrichten 
Man sollte auch bedenken das sogar das Leerzeichen vor dem @ gültig ist wenn der Name in Anführungszeichen steht oder durch das Leerzeichen durch ein \ maskiert ist.

Deswegen ist es wirklich am besten nur zu überprüfen

1. Gibt es ein @ ?
2. Gibt es hinter dem @ mindestens 1 punkt ?
3. Gibt es hinter dem letztem Punkt noch mindestens 2 weitere Zeichen ?
4  Stehen vor dem @ Zeichen ?


----------



## Gumbo (5. Juni 2005)

> Man sollte auch bedenken das sogar das Leerzeichen vor dem @ gültig ist wenn der Name in Anführungszeichen steht […]


Dann stellt sich wieder die Frage, welchen Standard man als Referenz benutzt.


----------



## Mamphil (5. Juni 2005)

Hi!

Ich hatte geschrieben: zwei Punkte *hintereinander*. Die Domain http://www..deinedomain.de ist ungültig.

Nach dem letzten Punkt müssen übrigens keine zwei Zeichen stehen: entweder dort steht gar kein Zeichen (http://www.tutorials.de. ist eine gültige Domain) oder dort stehen zwei  oder mehr Zeichen.

Dass etwas vorm @ stehen sollte, hatte ich oben vergessen...

Mamphil


----------



## Sven Mintel (5. Juni 2005)

Man könnte ja auch so herangehen:
Fragt den zugehörigen Mailserver ab...der wird schon Bescheid geben, wenn die Mailadresse nicht existiert.

Alldieweil halte ich die Sache mit den Aktivierungsmails trotzdem  für die beste Variante.... was ist bspw. wenn die Mailadresse zwar gültig ist, aber böswilligerweise die Adresse eines anderen angegeben wurde. Im schlimmsten Fall bekommt man dann Post vom Anwalt des Adresseninhabers.

Mehr als eine Prophylaxe gegen Tippfehler stellt eine Syntaxprüfung nicht dar.


----------



## Andreas Späth (5. Juni 2005)

Das mit dem Mailserver abfragen ist auch noch so eine Sache.
Ich hab schon erlebt das manche Leute sich auf manchen Seiten nicht anmelden konnten weil der Mailserver keine MX Record hatte ( welcher ja nicht zwingend notwendig ist für einen Mailserver )
Oder kann man den Mailserver auch abfragen wenn er nur über den Eintrag beim A-Record erreichbar ist ?

Langsam wird mir das ein wenig kompliziert


----------



## shockshell (6. Juni 2005)

Ich hatte mal ein Skript, welches aktiv die Adresse eines users validierte (Anfrage beim E-Mail-Server, ob Adresse existent). Das hat aber "ewig" lange gedauert und war "in realtime" nicht wirklich umzusetzen. Es handelte sich dabei um eine Kunde wirbt Kunde Seite.


----------



## xxenon (6. Juni 2005)

shockshell hat gesagt.:
			
		

> Ich hatte mal ein Skript, welches aktiv die Adresse eines users validierte (Anfrage beim E-Mail-Server, ob Adresse existent). Das hat aber "ewig" lange gedauert und war "in realtime" nicht wirklich umzusetzen. Es handelte sich dabei um eine Kunde wirbt Kunde Seite.



Wie bereits erwähnt wurde, sagt die Validität einer E-Mailadresse nichts darüber aus ob du es auch mit ihrem rechtmäßigen Besitzer zu tun hast.
Das solltest du daher unbedingt per Mail prüfen.

Des weiteren gibt es auch keine bessere Möglichkeit zum Testen der Valität:
Wird der Link angeklickt, war sie wohl valide.

Die neuen Sonderzeichenregelungen in Domainnamen machen es mittlerweile beinahe unmöglich eine Mail-Adresse mit Garantie zu überprüfen (du solltest dabei vorallem bedenken, dass jede TLD ihre eigenen Regeln hat: manche Einträge müssen mindestens 2, andere mindestens 3 Zeichen lang sein; andere wiederum dürfen nicht aus Zahlen bestehen oder mit Zahlen anfangen u.s.w.)

Wenn du auf all diese Faktoren Rücksicht nehmen willst, wird dein RegEx 3 A4-Seiten lang und muss täglich aktualisiert werden.

Außerdem solltest du dich nicht darauf verlassen, dass du beim Mailserver Auskunft über die Gültigkeit einer Adresse erhältst. AFAIK ignorieren viele Server solche Anfragen um SPAM zu vermeiden.


MfG. xxenon


----------



## robitobi (9. Juni 2005)

Hallo,
ich habe in diesem Zusammenhang auch eine Frage:
Einfaches Shopsystem,Standard-Szenario.
Der Kunde bestellt und erhält mit mail() unsere Kontodaten usw. und wir bekommen die Nachricht über die Bestellung.
Wenn der Kunde sich bei seiner eMail- Adresse verschrieben hat, ist sie zwar gültig nach den zuvor genannten Regeln, aber er bekommt natürlich keine Daten aus dem Shop.
Das Problem für uns ist: Mir gelingt es nicht, die return-mail (Mail delivery failed: returning message to sender....) die ja irgendwie generiert wird, zu erhalten, damit wir wissen, dass keine Daten übermittelt werden konnten.
Obwohl als Absender im Header unsere Mailadresse eingetragen ist. kommt dort nichts an.
Was mache ich falsch?


----------



## dr_Alex (10. Juni 2005)

also ich verwende diese funktion aus xtcommerce. das überprüft ob der syntax der email stimmt.

```
<?php
/* -----------------------------------------------------------------------------------------
   $Id: xtc_validate_email.inc.php,v 1.1 2003/09/06 21:47:50 fanta2k Exp $   

   XT-Commerce - community made shopping
   http://www.xt-commerce.com

   Copyright (c) 2003 XT-Commerce
   -----------------------------------------------------------------------------------------
   based on: 
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(validations.php,v 1.11 2003/02/11); www.oscommerce.com 
   (c) 2003	 nextcommerce (xtc_validate_email.inc.php,v 1.5 2003/08/14); www.nextcommerce.org

   Released under the GNU General Public License 
   ---------------------------------------------------------------------------------------*/

  ////////////////////////////////////////////////////////////////////////////////////////////////
  //
  // Function    : xtc_validate_email
  //
  // Arguments   : email   email address to be checked
  //
  // Return      : true  - valid email address
  //               false - invalid email address
  //
  // Description : function for validating email address that conforms to RFC 822 specs
  //
  //               This function is converted from a JavaScript written by
  //               Sandeep V. Tamhankar (stamhankar@hotmail.com). The original JavaScript
  //               is available at http://javascript.internet.com
  //
  // Sample Valid Addresses:
  //
  //    first.last@host.com
  //    firstlast@host.to
  //    "first last"@host.com
  //    "first@last"@host.com
  //    first-last@host.com
  //    first.last@[123.123.123.123]
  //
  // Invalid Addresses:
  //
  //    first last@host.com
  //
  //
  ////////////////////////////////////////////////////////////////////////////////////////////////

  function xtc_validate_email($email) {
    $valid_address = true;

    $mail_pat = '^(.+)@(.+)$';
    $valid_chars = "[^] \(\)<>@,;:\.\\\"\[]";
    $atom = "$valid_chars+";
    $quoted_user='(\"[^\"]*\")';
    $word = "($atom|$quoted_user)";
    $user_pat = "^$word(\.$word)*$";
    $ip_domain_pat='^\[([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\]$';
    $domain_pat = "^$atom(\.$atom)*$";

    if (eregi($mail_pat, $email, $components)) {
      $user = $components[1];
      $domain = $components[2];
      // validate user
      if (eregi($user_pat, $user)) {
        // validate domain
        if (eregi($ip_domain_pat, $domain, $ip_components)) {
          // this is an IP address
      	  for ($i=1;$i<=4;$i++) {
      	    if ($ip_components[$i] > 255) {
      	      $valid_address = false;
      	      break;
      	    }
          }
        } else {
          // Domain is a name, not an IP
          if (eregi($domain_pat, $domain)) {
            /* domain name seems valid, but now make sure that it ends in a valid TLD or ccTLD
               and that there's a hostname preceding the domain or country. */
            $domain_components = explode(".", $domain);
            // Make sure there's a host name preceding the domain.
            if (sizeof($domain_components) < 2) {
              $valid_address = false;
            } else {
              $top_level_domain = strtolower($domain_components[sizeof($domain_components)-1]);
              // Allow all 2-letter TLDs (ccTLDs)
              if (eregi('^[a-z][a-z]$', $top_level_domain) != 1) {
                $tld_pattern = '';
                // Get authorized TLDs from text file
                $tlds = file(DIR_FS_INC.'tld.txt');
                while (list(,$line) = each($tlds)) {
                  // Get rid of comments
                  $words = explode('#', $line);
                  $tld = trim($words[0]);
                  // TLDs should be 3 letters or more
                  if (eregi('^[a-z]{3,}$', $tld) == 1) {
                    $tld_pattern .= '^' . $tld . '$|';
                  }
                }
                // Remove last '|'
                $tld_pattern = substr($tld_pattern, 0, -1);
                if (eregi("$tld_pattern", $top_level_domain) == 0) {
                    $valid_address = false;
                }
              }
            }
          } else {
      	    $valid_address = false;
      	  }
      	}
      } else {
        $valid_address = false;
      }
    } else {
      $valid_address = false;
    }
    if ($valid_address && ENTRY_EMAIL_ADDRESS_CHECK == 'true') {
      if (!checkdnsrr($domain, "MX") && !checkdnsrr($domain, "A")) {
        $valid_address = false;
      }
    }
    return $valid_address;
  }

?>
```


----------



## robitobi (10. Juni 2005)

Ja, danke, aber das meine ich so nicht.
Wenn die Validierung der eMail-Adresse ok ist, sich der Kunde aber vertippt, bekomme ich bei Mailversand über mail() nicht mit, wenn die Nachricht abgewiesen wird. 
Das möchte ich aber irgendwie erreichen.


----------



## Gumbo (10. Juni 2005)

Dann solltest du den Benutzer auffordern, die E-Mail-Adresse mehrfach einzugeben, wie es bereits bei vielen Registrierungen der Fall ist. Stimmen diese überein, wird es wohl die richtige Adresse sein.


----------



## robitobi (10. Juni 2005)

Ja,das sollte helfen.
Danke

Mmhh,doch nicht so gut.
Die Auto-Vervollständigen-Einstellung hebt die "erzieherische" Massnahme der visuellen Kontrolle irgendwie wieder auf.
Noch 'ne Idee?


----------



## Sven Mintel (11. Juni 2005)

stelle das Autovervollständigen aus:

```
<input autocomplete="off">
```


----------



## Gumbo (11. Juni 2005)

Wobei das autocomplete-Attribut proprietär ist, da es eine Microsoft-Erfindung ist und somit wahrscheinlich nur im Internet Explorer funktionieren wird.

In Web Forms 2.0 wird es jedoch wieder erwähnt, womit es möglicherweise zum Bestandteil eines Standards werden könnte.


----------



## Mamphil (11. Juni 2005)

Hallo!

Im Firefox funktioniert das Attribut auch. Ich habe es allerdings im Form-Tag gefunden:
<form action="xyz.php" method="post" autocomplete="off">

Mamphil


----------



## robitobi (11. Juni 2005)

Danke euch,
werde das einbauen und ein "Achtung!Formular" zwischen -Bestellung absenden und dem wirklichen absenden der eMail - einbauen:
"Lieber Kunde, überprüfen sie noch einmal ihre eingegebene EMail-Adresse ....bla...bla...".
Dann ein grosses input-Feld mit Adresse und OK-Button.
Vielleicht hilft's ja, uns sind schon einige Aufträge verloren gegangen, weil der Kunde vergeblich auf die Shop-Mail gewartet hat und uns natürlich die Schuld gibt.


----------



## Mamphil (11. Juni 2005)

Hallo!

Hast du schon einmal versucht, einen Fehler-Header in die E-Mail einzubauen? Mein Header sieht z. B. in einem Gästebuch-Skript so aus:

```
$header = 'From: "Gästebuch-Infomailer" <'.$config['email'].'>';
$header .= "\nReply-To: ".$config['email']."\nReturn-Errors-To: ".$config['email']."\nContent-Type: text/plain;charset=iso-8859-1";
```
In $config['email'] steht natürlich eine gültige E-Mail-Adresse.

In diesem Fall solltest du darüber informiert werden, dass eine E-Mail nicht zugestellt werden konnte und du kannst ggf. den Kunden anrufen oder anderweitig kontaktieren.

Mamphil


----------



## robitobi (11. Juni 2005)

Hi,
das ist ja das Problem: Die Fehlermail geht raus, aber an den Webmaster, also die schlägt beim Hoster auf und DIESER leitet das nicht weiter. 
Ich habe einen anderen Webspace, da klappt das, von dort bekomme ich die Fehlermail an meine Stammdatenadresse geschickt.
Nun habe ich ja mitlerweile auch den "-f"-Parameter entdeckt, das will auch nicht, vielleicht wende ich ihn aber auch falsch an:
	
	
	



```
$header_cust  = "From: ". $mail_order ."\n\r";
    $header_cust .= "-f ". $mail_return ."\n\r";
    $header_cust .= "Reply-To: ". $shopname ." <". $mail_return .">\n\r";
    $header_cust .= "MIME-Version: 1.0\n\r";
    $header_cust .= "Content-Type: text/html; charset=iso-8859-1\n\r";
```

Bitte nochmal ansehen.
Danke.


----------



## Luzie (11. Juni 2005)

Gumbo hat gesagt.:
			
		

> Dann solltest du den Benutzer auffordern, die E-Mail-Adresse mehrfach einzugeben, wie es bereits bei vielen Registrierungen der Fall ist. Stimmen diese überein, wird es wohl die richtige Adresse sein.



Hi

hab das ganze jetzt mehr oder weniger quer gelesen, als intensiv   
Falls dieser Aspekt bereits erwähnt, sorry.

Ich lasse, nachdem der User eine REGISTRIERUNG oder auch einen NEWSLETTER - Eintrag geschrieben hat,  vorab, also bevor der Eintrag in der DB aktiv wird, dem User immer eine Mail an die eingegebene Adresse zukommen. 

Grund:
Dort befindet sich ein Link, den er/sie dann nur kurz bestätigen muss (warum, weswegen und weshalb steht in der Mail beschrieben). Wird der Link betätigt, kann ich davon ausgehen, dass 1. die Mail den User erreicht, 2. dass die Mail-Adresse zu diesem Zeitpunkt existiert. Seine/Ihre Adresse wird somit aktiviert (update). Also, gibt der User eine "gültige" Email-Adresse ein und es ist seine, erreicht ihn diese Mail, wenn nicht, ist die Adresse nicht vorhanden (das ganze läuft unabhänig von der serverseitigen Überprüfung der "Gültigkeit" der Mailadresse).

Fazit, Registrierung der Adresse erst nach Aktivierung durch den geklickten Link.


----------



## Gumbo (11. Juni 2005)

Du kannst den Benutzer auch vor der tatsächlichen Registierung auffordern, seine Eingaben zu überprüfen, indem du die Eingaben ausgibst und er sie bestätigen muss.


----------



## Andreas Späth (11. Juni 2005)

Ja aber zweimaliges eingeben halte ich da für besser.
Nicht Jeder ist so wie ich und überprüft dann auch wirklich nochmal alles


----------



## Luzie (13. Juni 2005)

Ich mache es am Beispiel unseres Newsletters so, dass ich zuerst die Email versende und dann wird eintragen. Das mache nicht ich, sondern der User selbst, nämlich über einen Link, der ihm in der Mail (wenn die Adresse existiert) zugeschickt wird. Mehr hat er net zu tun, nur 1x klicken. 

So erspare ich mir etlichen Müll in der Datenbank, ich spreche hier von Dummie-Eintragungen, die auch durch ein Validierungsscript gehen. bsp. tdfsf@dasfas.museum 1, oder 2 oder 3x bestätigt, trotzdem existiert sie nicht.


----------



## SuperTropfen (14. Juni 2005)

Oliver Gringel hat gesagt.:
			
		

> aber Massenmails wie z.B. Newsletter sollte man anders lösen, besonders, weil sonst jeder Empfänger sieht, wer die Mail sonst noch bekommen hat, und da freut sich bestimmt niemand drüber.



Moin moin,

eine andere Lösung wäre z.B., die Adressen, die ja wahrscheinlich in einer Datenbank stehen, mit PHP zu zählen, das Ergebniss in eine for-Schleife zu packen, und in die for-Schleife dann die Mail mit der jeweiligen Adresse.
So wird immer nur die aktuelle Mailadresse angezeigt und du kannst beliebig viele Mails versenden.
(Beim Newsletter auf diese Art halt so viele, wie Adressen da sind.)

Greetz,
SuperTropfen


----------



## ManicMarble (19. Juli 2005)

Für seriöses E-Mail-Marketing ist das sog. "Double Opt-In"-Verfahren zu einer festen Richtlinie geworden. Double Opt-In ist genau das, was hier schon mehrfach, z.B. von Luzie und anderen, beschrieben wurde: Newsletter-Versand (o.ä.) erst nach 1. ausdrücklichem Wunsch (Klick auf den Website) und 2. Antwort auf ein Bestätigungs-E-Mail. Alles andere wird inzwischen gerne als unseriös angesehen und als Spam bezeichnet.

Da man das mit dem Bestätigungs-Mail also sowieso machen sollte, reicht es, die eingegebene Mail-Adresse nur grob auf syntaktische Richtigkeit zu prüfen (_ein_ @, steht was vor dem @, gibt's nen Punkt nach dem @, usw.). Finde ich jedenfalls.

_Martin_


----------

