Email aus einer Textdatei auslesen?

Extremniki

Erfahrenes Mitglied
Ich bin völlig am verzweifeln, denn das was ich vorhab, krieg ich nicht hin!:mad:
Also, mal von vorne:

Ich möchte auf meiner Seite ein Newsletterscript einsetzen. Das Formular, welches mir die angemeldeten Emails in ein Textfile schreibt ist auch fertig und läuft bestens. Nur ich bekomme die Email nicht ausgelesen um den Newsletter mit diesen Adressen zu versenden.

In der textdatei steht die Email so:

name@domain.de|

und nu? habe hier schon sämtliche Vorschläge ausprobiert, aber es lüppt net! Bitte nicht auf andere Tut's verweisen, die hab ich wie gesagt schon alle erfolglos durch.

Dann hab ic haber parallel noch ne Frage:

In dem Textfeld, das zur Newslettereingabe dient habe ich schon einen Text der immer gleichbleiben soll drin stehen. gibt es ne Möglichkeit, die jeweilige Emailadresse mit einzufügen und wenn ja, wie lautet der Code, der in das Textfeld muss?

Vielen Dank für Eure Hilfe schonmal im Voraus. Das Forum hier ist echt spitze!

LG Extremniki
 
Wenn Du ne Mysql zur Verfügung hast, speicher die email-adis lieber inner Tabelle, dann ist es ziemlich einfach diese abzufragen.

Wenn die email-adressen irgendwie irgendwo in einer txt-datei stehen, kannst Du sie vielleicht mit pregmatch suchen.

$pattern = '(.*?)@(.*?).de';
preg_match_all($pattern, $dateitext, $email_array);

ist aber nur ein Ansatz, denn ich kapier Dein Problem auch nich so ganz
 
Nee, MySQL hab ich net

Hi, danke erstmal für Deine Antwort.

Also ich hab auf meinem Server keine MySQL-Unterstützung, muss ich auch nicht unbedingt haben. Für meinen Newsletter sollte eigentlich ein Textfile reichen, es werden eh nicht mehr als 10 bis 20 Adressen sein die ich damit anmailen möchte. Ich weiß, könnte die Adressen ja schon direkt im Script erwähnen mit $email[1]="name@email.de"; usw. aber ich möchte es auch anders hinbekommen.

Du schriebst, dass Du mein Problem nicht so ganz verstehen würdest. Was meinst Du denn damit genau? Alles?

Gruß Extremniki
 
Zuletzt bearbeitet:
wenn deine mail-adressen alle durch "|" getrennt sind,
dann ist es kein problem sie in ein array um zu wandeln :)

Code:
$mails = explode("|",$mailstr);
 
ja, diesen schritt kann ich auch nachvollziehen, jedoch kommt jetzt folgende fehlermeldung:

Warning: mail() expects parameter 1 to be string, array given in ../php/newsletter/send.php on line 6



mein script in der send.php sieht so aus:


<?
$email=fopen("email.txt", "r+");
$email = explode("|",$mailstr);
$absender = "meineemail@absender";
$text = "$nachricht";
mail($email, $betreff, $text,"From:$absender");
?>


$email soll eben aus der email.txt geholt werden, $betreff und $text kommt aus dem vorhergehenden formular, welches per form das send.php aufruft. klappt auch super, wenn ich in diesem obigen script den empfänger manuel festlege. nur holt er die emails nicht aus der .txt wie er soll.

hat da nochmal jemand ne idee, oder hab ich oben einen fehler drin?
 
Es kommt mir so vor als wenn da die Variablen durcheinandergekommen wären.

<?
$email=fopen("email.txt", "r+");
$email_array = explode("|",$email);
$absender = "meineemail@absender";
$text = "nachricht";

for ($i=0;$i<count($email_array);$i++)
mail($email_array[$i], $betreff, $text,"From:$absender");
?>

Der Befehl explode liefert ein array zurück, d.h. Du kannst diese Variable dann nur ansprechen indem Du z.B. [1] dahinterschreibst.
 
Allerdings dürfen dann in der email.txt nur email-adressen drinstehn. Wenn dahinter jetzt z.B. noch <br> steht, dann versucht der server eine mail an <br> zu versenden :-)
 
Deinertsche bei dir fehlt noch ein {}.
Also dieser Teil dann so:

PHP:
for ($i=0;$i<count($email_array);$i++) {
mail($email_array[$i], $betreff, $text,"From:$absender"); 
}
 
So, erstmal danke für die umfangreiche Hilfe!
Aber jetzt ist immer noch irgendwas faul.

Es kommt keine Fehlermeldung mehr, wenn ich den Newsletter versende, auch die Adressen werden alle schön angezeigt, so wie ich das noch zusätzlich in der send.php reingeschrieben habe, aber keiner der Emails bekommt einen Newsletter.

Hier nochmal der Code:

<?

$email=fopen("email.txt", "r+");
$email_array = explode("|",$email);
$absender = "meinname@email.de";
$text = "$nachricht";

for ($i=0;$i<count($email_array);$i++) {
mail($email_array[$i], $betreff, $text,"From:$absender");
}

?>

Wo liegt denn da noch der fehler?
 
es waere nicht verkehrt noch ein trim auf die email adresse loszulassen.
in etwa so :

Code:
mail(trim($email_array[i]), $betreff, $text, "From:$absender");

ich hoffe das hilft. :)
 
Zurück