php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.06.2008, 22:53  
Neuer Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 10
Renovatio befindet sich auf einem aufstrebenden Ast
Standard Versand einer Mail an zwei Empfänger

hi leute,

ich möchte per php eine mail an zwei empfänger senden.
Bisher sieht der code so aus:

<?php
$messaeg = "";

if(isset($_POST['submit']) and $_POST['submit'] == "Absenden") {
$error = 0;
$success = 0;
if(trim($_POST['name']) == "") {
$error = 1;
}
if(trim($_POST['firstname']) == "") {
$error = 1;
}
if(trim($_POST['plz']) == "") {
$error = 1;
}
if(trim($_POST['age']) == "") {
$error = 1;
}
if(trim($_POST['email']) == "") {
$error = 1;
}
if(trim($_POST['id']) == "") {
$error = 1;
}
if(trim($_POST['studienfach']) == "") {
$error = 1;
}
if(trim($_POST['semester']) == "") {
$error = 1;
}
if(trim($_POST['besuch']) == "") {
$error = 0;
}
if(trim($_POST['info']) == "") {
$error = 0;
}
if(trim($_POST['zimmer']) == "") {
$error = 0;
}
if(trim($_POST['plan']) == "") {
$error = 0;
}
if(trim($_POST['feiern']) == "") {
$error = 0;
}
if(trim($_POST['betreff']) == "") {
$error = 0;
}

if($error == 1) {
$message = "<p class=\"error\">Du musst alle Pflichtfelder (*) ausfüllen.</p>";
} else {
$infoemail = "ex@ample.de";
$subject = "Betreff:<br />\n<br />\n";
$content = "Angaben zur Person:<br />\n<br />\n";
$content .= "Name: ".$_POST['name']."<br />\n";
$content .= "Vorname: ".$_POST['firstname']."<br />\n";
$content .= "PLZ/Ort: ".$_POST['plz']."<br />\n";
$content .= "Alter: ".$_POST['age']."<br />\n";
$content .= "E-Mail: ".$_POST['email']."<br />\n";
$content .= "Telefon: ".$_POST['phone']."<br />\n";
$content .= "Du bist: ".$_POST['id']."<br />\n";
$content .= "Universit&auml;t: ".$_POST['uni']."<br />\n";
$content .= "Studienfach: ".$_POST['studienfach']."<br />\n";
$content .= "Semester: ".$_POST['semester']."<br />\n";
$content .= "Ich möchte euch besuchen: ".$_POST['besuch']."<br />\n";
$content .= "Ich wünsche weitere Informationen: ".$_POST['info']."<br />\n";
$content .= "Ich suche ein Zimmer: ".$_POST['zimmer']."<br />\n";
$content .= "Ich möchte einen Stadtplan von München: ".$_POST['plan']."<br />\n";
$content .= "Ich möchte Biertrinken und Feiern: ".$_POST['feiern']."<br />\n";
$content .= "Betreff: ".$_POST['betreff']."<br />\n";
$content .= "Nachricht: ".$_POST['other']."<br />\n";

$answer = "Hallo ".$_POST['firstname'].",<br />\n<br />\n";
$answer .= "vielen Dank f&uuml;r Deine E-Mail an uns.<br />\n";
$answer .= "Wir werden uns in K&uuml;rze bei Dir melden.<br />\n<br />\n";
$answer .= "Viele Gr&uuml;&szlig;e aus *<br />\n";
$answer .= "*\n";


// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

// zusätzliche Header
$header .= 'From: *' . "\r\n";

if(mail($infoemail, $subject, $content, $header)) {
//Mail an den Bewerber zur Bestätigung
mail($_POST['email'], $subject, $answer, $header);
$success = 1;
$message = "<p>Deine E-Mail wurde erfolgreich an uns gesendet. Du wirst in wenigen Minuten auch eine Bestätigungsnachricht erhalten.</p>";
} else {
$message = "<p class=\"error\">Der Versand Deiner E-Mail hat leider nicht funkioniert. Bitte schreibe eine E-Mail direkt an *</p>";
}
}
}


?>

mit "," trennen und eine zweite einfügen funktionierte nicht

schon mal vielen dank
Renovatio ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.06.2008, 23:07  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Möchtest Du x einzelne emails versenden oder mehrere Empfänger per cc oder mehrere Empfänger per bcc eintragen?
David ist offline  
Alt 08.06.2008, 23:10  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hallo Renovatio,
Zitat:
Zitat von Renovatio Beitrag anzeigen
mit "," trennen und eine zweite einfügen funktionierte nicht
Was heißt "funktioniert" nicht? Und wie genau sah dein Code dazu aus?

Im Manual findest du folgende Angabe:
Zitat:
Parameter-Liste

to Empfänger (einer oder mehrere) der E-Mail.
Das Format dieses String muss nach » RFC 2822 erfolgen. Beispiele:
  • benutzer@example.com
  • benutzer@example.com, benutzer2@example.com
  • Name <benutzer@example.com>
  • Name <benutzer@example.com>, Name2 <benutzer2@example.com>
und weiter unten auch ein Beispiel mit mehreren Empfängern...


Ganz unabhängig vom Problem: Ich würde dir empfehlen eine fertige Lösung wie SwiftMailer oder PhpMailer zu verwenden - dann musst du dich nicht mehr um das ganze header-Geraffel kümmern
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 09.06.2008, 06:06  
Neuer Benutzer
 
Registriert seit: 01.06.2008
Beiträge: 10
Renovatio befindet sich auf einem aufstrebenden Ast
Standard

na entweder an 2 emfpänger versenden, oder mit CC
Zitat:
Zitat von David Beitrag anzeigen
Möchtest Du x einzelne emails versenden oder mehrere Empfänger per cc oder mehrere Empfänger per bcc eintragen?
Renovatio ist offline  
Alt 09.06.2008, 12:05  
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

das hier:
PHP-Code:
if(mail($infoemail$subject$content$header)) { 
sendet eine mail an ex@ample.de - willst du das wirklich?


Wenn du die zusammengebaute mail doppelt senden willst, dann
kannst du das so codieren:

statt: mail($_POST['email'], $subject, $answer, $header);

PHP-Code:
$empf1 $_POST['email'];
$empf2 "zweiter@empfaenger.de";
mail($empf1$subject$answer$header);
mail($empf2$subject$answer$header); 
Sind die Plausibilitätsprüfungen oben so richtig?
Du setzt $error auf 1 dann, wenn Formularfelder leer sind.
Später setzt du $error wieder auf 0, wenn andere Felder leer sind.
Wolla ist offline  
Alt 09.06.2008, 13:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

agrajag hat doch schon alles gesagt. Zweifacher Aufruf der mail Funktion ist Quatsch.

Die obige Validierung ist nicht nur unübersichtlich, sondern auch (oder gerade deshalb) fehlerhaft. Überlegmal was hier passieren könnte:
PHP-Code:
...
if(
trim($_POST['semester']) == "") {
$error 1;
}
if(
trim($_POST['besuch']) == "") {
$error 0;
}
...
if(
$error == 1) {

weitere Anmerkungen:

-Für Code hier im Forum bitte stets die [php] Tags verwenden.
-Als Multimailer (Newsletter o.ä.) ist die mail Funktion nicht geeignet.
-Im Scriptschnipsel Forum findest Du Hinweise, wie die Message besser und übersichtlicher aufbereitet werden kann.
__________________
--
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 09.06.2008, 13:50  
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

Zitat:
= Zweifacher Aufruf der mail Funktion ist Quatsch.
Wenn man ins Empfängerfeld mehrere Adressen durch Komma getrennt schreibt, sieht dann nicht jeder Empfänger die andere Emailadresse?

Zitat:
Als Multimailer (Newsletter o.ä.) ist die mail Funktion nicht geeignet.
Mit welchen Begriffen google ich am Besten, um eine bessere Lösung als mail() zu finden? Oder kannst du einen Link aus dem Ärmel schütteln? Das interessiert mich sehr.

Geändert von Wolla (09.06.2008 um 13:52 Uhr). Grund: verQUOTEt
Wolla ist offline  
Alt 09.06.2008, 13:51  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Wenn man ins Empfängerfeld mehrere Adressen durch Komma getrennt schreibt, sieht dann nicht jeder Empfänger die andere Emailadresse?
Zitat:
na entweder an 2 emfpänger versenden, oder mit CC
will er ja auch
cycap ist offline  
Alt 09.06.2008, 13:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Mit welchen Begriffen google ich am Besten, um eine bessere Lösung als mail() zu finden?
z.B. phpmailer
__________________
Gruss
L
lazydog ist offline  
Alt 09.06.2008, 14:09  
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

Zitat:
z.B. phpmailer
Ich hatte mir die phpmailer-Klasse schon mal runtergeladen und mir die Funktionen angeschaut. Man kann damit fremde SMTP-Server ansprechen, was allerdings bei der Aussendung einer Liste mit ein paar hunderttausend Mails eher scheitern dürfte.

Will man aber über den eigenen Mailserver aussenden, dann wird das auch mit mail() realisiert. Ich hatte die Einwendung oben so verstanden, dass es noch andere Anweisungen gibt, die vorzuziehen sind.
Wolla 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
dateien aus verzeichnis einzeln als mail attachment versenden mathes PHP Tipps 2008 5 17.07.2008 19:45
mail() an web und gmx kampfnickel PHP Tipps 2008 12 23.09.2007 00:03
Unterschied zwischen mail() und popen(/usr/sbin/sendmail)... DonTermi PHP Tipps 2007 8 27.03.2007 13:25
mail() - Fehler: Kein Bruch Mikay Kun PHP Tipps 2006 5 19.06.2006 08:14
Funktion Mail() verwenden bendigo PHP Tipps 2006 2 05.05.2006 11:44
mail() und boundary Problem Gef PHP Tipps 2006 4 02.03.2006 00:47
Mail mit mail() kommt nicht an center PHP Tipps 2005-2 5 18.08.2005 13:02
Mail adresse überprüfen? PHP Tipps 2005-2 6 16.06.2005 11:53
Mit der PHP mail() Funktion eine HTMl mail verschicken? PHP Tipps 2005 6 09.05.2005 07:13
php mail() header &amp;amp;amp;amp;amp;amp; Spam Problem PHP-Fortgeschrittene 4 04.05.2005 12:31
[Erledigt] Error Mail() function PHP Tipps 2005 3 14.04.2005 03:32
Mail versenden - Fehler 553 Anuschka PHP Tipps 2004-2 7 13.12.2004 19:54
mehrere Atachement mit HTML Mime mail class??? 18inch PHP Tipps 2004-2 1 28.11.2004 23:58
mail() - mail header PHP-Fortgeschrittene 2 28.09.2004 15:35
mail() sendet nicht PHP Tipps 2004 3 25.06.2004 13:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mail mehrere empfänger, swiftmailer zwei empfänger, php schnipsel x-mailer cc mail, e mail an zwei empfänger, e-mail an zwei empfänger, $to an zwei empfänger, \htmlmimemail5*bestätigung\, swift mailer mehrere empfänger, e-mail mit zwei empfänger, htmlmimemail5 mehrere bcc, swiftmailer zwei mails senden, html mime mail mehrere cc, php-mailer mehrere empfänger, email an zwei empfänger, email zwei empfänger, sendmail \zwei empfänger\, htmlmimemail anleitung pflichtfelder, http://www.php.de/php-tipps-2008/1605-versand-einer-mail-zwei-empfaenger.html, php mail sendet nicht alles, david email an mehrere empfänger

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:06 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