Email an Adressen aus DB schicken ?

flandersX

Mitglied
Hallo,

es geht mal wieder um meine Kundendatenbank.

Ich möchte gerne eine Nachricht, quasi einen newsletter-light, an alle meine Kunden schicken.

In der MySQL Datenbank ist die Email gespeichert.
Das Feld heisst "email".

So, wie gehe ich nun vor.

Eine Normal Mail Anweisung wäre ja in etwa so,
PHP:
<?php
$sender = "meine@email.de";
$empfaenger = "mail adressen aus MySQL DB";
$betreff = "Mail von $sender";
$mailtext = "Mein Text.";
mail($empfaenger, $betreff, $mailtext, "From: $sender ");
?>

kann mir da mal wieder einen tritt in die richtige Richtung geben ?

Vielen Dank !
 
Alle Email-Adressen der Tabelle lesen (evtl. so SELECT email FROM kundendaten WHERE newsletter=1).
Dann in einer Schleife die Mails schicken (also die Schleife mit mysql_fetch_...)
 
Hallo flandersX,


habs zwar nciht getestet aber so sollte es gehen.

Code:
<?php
mysql_connect("127.0.0.1","user","pass") or die
("Es besteht keine Verbindung zum MySQL Server");
mysql_select_db("meine_datenbank") or die
("Datenbank existiert nicht");


$schleife = mysql_query("SELECT email FROM kunden");
while ($schleife1=mysql_fetch_array($schleife))
{
$sender = "meine@email.de"; 
$empfaenger = $schleife1["email"]; 
$betreff = "Mail von $sender"; 
$mailtext = "Mein Text."; 
mail($empfaenger, $betreff, $mailtext, "From: $sender ");
}
?>

Gruss Kitox
 
Keine Ahnung wie viele Mails du damit verschicken willst.
Du musst aber wenn es sehr viele sind aufpassen das die maximale Skriptlaufzeit nicht erreicht wird und das du nicht Probleme mit deinem Provider bekommst.

Wie du die Laufzeit vielleicht etwas verringern kannst wäre indem du nicht jede einzelne Adresse ansprichst, sondern diese als "CC" oder "BCC" zusammenfasst.

Ansonsten so wie Kitox geschrieben hat.

Thomas
 
Super danke euch,

sind die mails nacher für jeden (der eine mail bekommt) sichtbar.
Also in der Adress leiste oder im cc. ?

ich teste mal, danke schön !
 
sind die mails nacher für jeden (der eine mail bekommt) sichtbar.
Wenn du CC benutzt sind alle weiteren Empfänger der Mail für die Empfänger sichtbar.
Wenn du BCC benutzt nicht. Deswegen heisst es ja Blind carbon copy. ;)

Ich würde dennoch eine Schleife mit einer Mail pro User verwenden.
 
rd4eva hat gesagt.:
Ich würde dennoch eine Schleife mit einer Mail pro User verwenden.
Wieso?
Du könntest auch immer schrittweise Mails versenden. Sprich, zuerst sendest du die ersten 20 Mails, dann ruft sich dein Skript nochmal auf (per header(Location: ..)) und verarbeitet weitere Mails. Dann hast du das Problem mit der begrenzten Ausführungszeit nicht mehr.
 
Ja aber, die Ausführungszeit wäre kleiner für das Skript, obwohl es mehrmals aufgerufen wird.

rd4eva hat gesagt.:
Das kommt doch aufs gleiche raus. Ich meinte nur das ich weder CC noch BCC verwenden würde.
Was dann? Das direkte "An"-Feld? Aber dann sehen alle User die anderen User. Datenschutz!
 
Ich glaube wir reden gerade ein bischen an einander vorbei.

Ich hatte dich so verstanden das du 20 Mails verschicken willst ( 1 Mail pro User / kein (B)CC) und dann das Skript wegen der Laufzeit neu Aufrufen willst.
Und das würde ( von der Laufzeit abgesehen ) auf das gleiche rauskommen wie eine Schleife.

CC und BCC würde ich deswegen nicht verwenden weil ich z.B. auf meinem Exchange-Server bestimmen kann ob ich Mails durchlasse die noch 100 Leute im CC haben.
Persönliche Anrede kann ich im CC auch vergessen.
 
Zurück