Email versenden über Checkbox

docma

Erfahrenes Mitglied
Hallo

Möchte ein Emailformular erstellen.
Links vom Formular befinden sich die Namen mit einer CHECKBOX versehen.
Also wenn ich Person "Hans" und "Susi" anklick solte die Email an diese zwei personen verschickt werden.
Mir ist nicht klar wie ich diese Checkbox am einfachsten in die Mailfunktion reinbekomme?

liebe grüsse
 
Du machst einfach zwei checkboxen in dein Formular, und dann kannste ja einfach eine if-Abfrage machen, und wenn diese postiv ist schickt er eben an den und den die E-Mail.
 
Hi,

Du musst eigentlich nur abfragen welche Checkboxen gesetzt sind, und das machst du am besten per Schleife.
Befinden sich die Email Adressen der Benutzer in einer Datenbank?
Falls nicht, dann machst du einfach so etwas als Checkbox für jeden User:

HTML:
<input type="checkbox" name="sendto_useridxy" value="email@domain.de">

Hier die Schleife:
PHP:
foreach ($_POST as $key => $value) {
	if(substr($key, 0, 7) == 'sendto_') {
		deinemailfunktion($value);
	}
}

$value wäre in diesem Fall die Mailadresse eines Users.
Es gibt sicher noch viele weitere Wege, aber so hätte ich das jetzt spontan gelöst..

Gruß
 
Benenn die Checkbox-Elemente so, dass PHP daraus ein Array macht, etwa:
HTML:
…
<li><label><input name="to[]" value="1"> Hans</label></li>
<li><label><input name="to[]" value="2"> Susi</label></li>
…
Im Skript kannst du die ausgewählten Empfänger dann einfach mit Name und E-Mail-Adresse verbinden, etwa:
PHP:
$array = array(
	null,
	array('Hans', 'hans@example.net'),
	array('Susi', 'susi@example.net'),
	// …
);
$to = array();
foreach( $_POST['to'] as $key ) {
	if( isset($array[$key]) ) {
		$to[] = sprintf('"%s" <%s>', $array[$key][0], $array[$key][1]);
	}
}
$to = implode(', ', $to);
 
Wow. Danke für die schnellen antworten.
Die Antwort von Gumbo funktioniert wunderbar, auch wenn ich da nicht alle befehle verstehe. Danke:)

Eine kleine Frage nebenbei, die mail die dieser Server versendet, landen bei mir immer bei den spam mails. Bei anderen Webservern war das bei mir nicht der fall.
Liegt dieses Problem Server oder kann man dies auch mit PHP verhindern?
 
Da gibt es viele Faktoren die man beachten muss.
Am besten schaust du dir hierzu die header der email an, die verraten dir meistens gleich woran es liegt, und was man zu ändern/optimieren hat.
 
Zurück