php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.11.2008, 20:02  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Wie lese ich eine Datei aus und schicke ein Mail?

Servus miteinander,

ich bin ziemlich am Anfang mit der php-Programmierung und schon fast am Ende, mit den Nerven.

Mein jetzige Problem:

Ich beschicke eine Datei (mailadresse.txt) mit dem Inhalt eines Kontaktformulars.

Der Inhalt sieht nun so aus:

[adressen.txt]
test.test@gmx.net; test2.test@gmx.net; test3.test@gmx.net; test4.test@gmx.net;

Mit dieser Datei lese ich aus:
<?
//Fehleranzeige, damit ich weiß was nicht geht
error_reporting(E_ALL);

//echo "Der Inhalt der Datei $dateiname wird ausgelesen und verarbeitet.<br><br><br>";
//Definition der Variablen Kurznachrichten
$Kurznachrichten = "Dies sind die heutigen kurzen Kurznachrichten.";

// Datei öffnen
$fp = fopen("adressen.txt","r");
if ($fp)
{
while(!feof($fp))
{
$zeile = fgets($fp);

//Ausgabe der gespeichterten Mailadressen
echo "Dies ist der Inhalt der Datei 'adressen.txt' <br><br>$zeile";

//E-Mail generieren
mail ($zeile, "Betrefftext", $Kurznachrichten, "From:Alles Bestens, Alter!<antwort@antwort.de>");
}
// Datei schließen
fclose($fp);

}
else
{
// Sollte Datei nicht vorhanden sein
echo "Datei wurde nicht gefunden";
}
?>


Der Sinn des Ganzen:

Das generierte Mail soll aus allen Mailadressen der Datei eine Mail schicken - vorerst mal.

Was mache ich da falsch, denn die Funktion des Mailversands funktioniert nur, wenn _eine_ Mailadresse in der Datei steht.

Schönen Sonntag noch!

Klaus

Geändert von klaussturm (23.11.2008 um 20:08 Uhr).
klaussturm ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.11.2008, 20:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Willkommen.

Zitat:
Was mache ich da falsch,
Beim Posten bitte [php] bbTags verwenden.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 23.11.2008, 20:10  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Muss zugeben ich kenn mich mit mail() auch nicht so aus.
Die Sache ist das mail nicht einfach eine beliebige Anzahl mailadressen als Argument nimmt. Du musst schauen das du die anderen MailAdressen als Kopie-Empfänger in die additional_headers einträgst.

Ich schau mich mal um ob ich dazu was finde ...

mfg

Edit: hm, hab mich geirrt. laut PHP.net muss $to entweder
user@example.com, anotheruser@example.com
oder
User <user@example.com>, Another User <anotheruser@example.com>
entsprechen.
Du benutzt aber laut eigenen angaben ; als trennzeichen, nicht das komma du musst also deine adressen.txt ändern, so das die email adressen per komma getrennt werden
BlackWolf ist offline  
Alt 23.11.2008, 20:10  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Servus,

was meinst du mit: "Beim Posten bitte [php] bbTags verwenden."

????


lg

klaus
klaussturm ist offline  
Alt 23.11.2008, 20:14  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von klaussturm Beitrag anzeigen
Servus,

was meinst du mit: "Beim Posten bitte [php] bbTags verwenden."

????


lg

klaus
er meint das du deinen PHP-Code mit
[ php ]
und
[ /php ]
(ohne leerzeichen) umschließen, sollst, da er dann wie folgt formatiert wird:
PHP-Code:
$file fopen('text.txt',w);
echo 
"ein  echo";
$eek fread($file,1000); 
BlackWolf ist offline  
Alt 23.11.2008, 20:39  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Die Emailadressen sollten so in der Datei stehen:

adres@se1.de
adres@se2.de
adres@se3.de
adres@se4.de

Also immer in jeder Zeile eine neue.

Dann kannst du die Datei mit file in ein Array einlesen:

PHP-Code:
$adressen file('adressen.txt'); 
Das Array $adressen kannst du dann mit einer foreach schleife verarbeiten und die Mail innerhalb dieser Schleife dann an jeden Kontakt versenden.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 23.11.2008, 20:44  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Die Emailadressen sollten so in der Datei stehen:

adres@se1.de
adres@se2.de
adres@se3.de
adres@se4.de

Also immer in jeder Zeile eine neue.

Dann kannst du die Datei mit file in ein Array einlesen:

PHP-Code:
$adressen file('adressen.txt'); 
Das Array $adressen kannst du dann mit einer foreach schleife verarbeiten und die Mail innerhalb dieser Schleife dann an jeden Kontakt versenden.
eventuell sollte man noch trim() für die einzelnen zeilen verwenden, weil man sonst hinter jede emailadresse noch den Umbruch aus der Datei mit drin hat, jenachdem was für ne klasse man zum senden benutzt oder ob man händisch mail() benutzt, kann das eventuell sonst probleme geben.
robo47 ist offline  
Alt 23.11.2008, 21:08  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

So isses. Dieser Hinweis steht ja auch deutlichst in der Doku der File-Anweisung.

Zitat:
Hinweis: Jede Zeile in dem resultierenden Array enthält das Zeilenende, weshalb Sie trim() verwenden müssen, falls der Zeilenumbruch nicht vorhanden sein soll.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 23.11.2008, 23:51  
Neuer Benutzer
 
Registriert seit: 23.11.2008
Beiträge: 25
klaussturm befindet sich auf einem aufstrebenden Ast
Standard

Servus und herzlichen Dank für deinen goldrichtigen Tipp!

Zitat:
Zitat von BlackWolf Beitrag anzeigen
[....]
>...laut PHP.net muss $to entweder....

Du benutzt aber laut eigenen angaben ; als trennzeichen, nicht das komma du musst also deine adressen.txt ändern, so das die email adressen per komma getrennt werden
Habe nun den String in

$inhalt = $adresse.$komma.$leer;

geändert und so das richtige Format erreicht.

Die Mailfunktion funktioniert auf Anhieb.

Nur ein Wehmutstropfen bleibt (vorerst) noch.

Alle Mailadressen werden nun für alle anderen sichtbar - kann ich die denn nicht als BCC versenden?

lg

Klaus

Geändert von klaussturm (24.11.2008 um 14:10 Uhr).
klaussturm ist offline  
Alt 24.11.2008, 08:04  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Um diese als BCC zu versenden musst du deinen Mailheader dementsprechend gestalten.

Wenn du es gemacht hättest wie Wolla schrieb dann würden nicht alle die Mailadressen sehen.

Zumindest ist das bei meinem Newsletter nicht der Fall. Da läuft die Mailfunktion in der while Schleife und es wird praktisch immer eine neue Email an jede Adresse extra gesendet. Ich arbeite zwar mit einer DB aber das Prinzip ist das selbe.

Schreibe die Mailadressen aus der txt in ein Array,durchlaufe das Array mit froeach und lasse die Mailfunktion in der Foreach Schleife laufen.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
.gz Datei entpacken und mit dem Inhalt weiterarbeiten R4v3r PHP Tipps 2007 8 02.02.2007 14:49
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
php oder css problem? Wie konfiguriere ich mail header PHP Tipps 2006 1 28.02.2006 05:43
daten von Datei in Variabel umwandeln ? oder chrisbog PHP Tipps 2006 2 13.01.2006 19:42
[Erledigt] Datei mit &amp;amp;amp;amp;quot;w&amp;amp;amp;amp;quot; schreiben -&amp;amp;amp;amp;gt PHP-Fortgeschrittene 17 30.12.2005 13:58
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Problem mit mail datei im mbox fomat PHP-Fortgeschrittene 3 08.02.2005 15:24
aus php datei eine pdf datei erzeugen lassen raffnix PHP-Fortgeschrittene 5 04.02.2005 15:08
[Erledigt] mail versand mit anhang (-- fopen(), fread(), filesize() --) PHP Tipps 2005 5 29.01.2005 18:36
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/49273-erledigt-wie-lese-ich-eine-datei-aus-und-schicke-ein-mail.html, wie lese ich e mails format pdf?, klaus sturm php

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum