auf html button mail funktion mittels php legen

mafin

Mitglied
Hallo,

ich habe ein großes Problem.
Ich muss auf einen Button eine Funktion legen, die eine Mail verschickt.
mailto von html kann ich nicht verwenden.

ich bekomme einen string. dieser hat mehrere email adressen.
nun lege ich diese mittels php in einer tabelle an und lege dahinter noch einen button.
wenn der button gedrückt wird soll eine mail verschickt werde und zwar an denjenigen, dessen email in der zeile steht mit einem vorgefertigten text.

leider verzweifele ich gerade !
ich probiere und probiere....kann sehr gut java, aber php ist mir neu.
es klappt einfach nicht.
ein kollege meinte ich soll sendmail benutzen, aber woher und wie?
bisher hsabe ich mich an der mail funkt. von php versucht.


ich hoffe mir kann jemand helfen.

Code:
for ($j=0; $j<(sizeof($license_info)-1)/2; $j++)
{
	echo "<FONT FACE=\"Arial\"><b>";
	echo $license_info[$pos2];
	echo ".";
	echo "</b></FONT>";
	$pos2=$pos2+2;
	echo "<table border=\"1\" cellpadding=\"1\" 
  cellspacing=\"1\" width=\"50%\" style=\"border:4px solid #cccccc;\"><tbody>";
	$pos1=1;
	$license = explode("'", $license_data[$j]);
	for ($i=0; $i<(sizeof($license)-1)/4; $i++)
	{
		echo "<tr>";
		echo "<td width=\"350\" height=\"1\">";
		echo "<FONT FACE=\"Arial\" SIZE=2>";
		echo $license[$pos1];
		echo "</FONT>";
		echo "</td>";
		echo "<td width=\"300\" height=\"1\">";
		$pos1=$pos1+2;
		echo "<FONT FACE=\"Arial\" SIZE=2>";
		echo $license[$pos1];
		echo "</FONT>";
		echo "</td>";
		echo "<td width=\"50\" height=\"1\" valign=\"middle\" align=\"center\">";
		echo "<form action=\"sendmail2.php\" method=\"sendmail(";
		echo $mail_empfaenger;
		echo ", ";
		echo $betreff;
		echo ", ";
		echo $text;
		echo ", ";
		echo $mail_absender;
		echo ")\"><input type=\"button\" value=\"Mail\"></form>";
		echo "</td>";
		echo "</tr>";
		$pos1=$pos1+2;
	}
	echo "</tbody></table>";
	echo "<br />";
}

in meiner sendmail.php steht folgendes

Code:
<?php
function sendmail($mail_empfaenger, $betreff, $text, $mail_absender){
	mail( $mail_empfaenger, $betreff, $text, $mail_absender );
}
?>
 
Würde sagen wir fangen erstmal mit Formulare definieren an. Lese dazu das hier. Wenn du dich entschieden hast, ob Post oder Get kannst du über die Superglobals auf den Inhalt deines Formulares zugreifen.

Ist das sendmail2.php oder sendmail.php? Bedenke das du sendmail2.php beim abschicken aufrufst, nur deine method ist noch unklar, per Get oder Post.
PHP:
<?php
function sendmail($mail_empfaenger, $betreff, $text, $mail_absender){
	mail( $mail_empfaenger, $betreff, $text, $mail_absender );
}
?>
 
Würde sagen wir fangen erstmal mit Formulare definieren an. Lese dazu das hier. Wenn du dich entschieden hast, ob Post oder Get kannst du über die Superglobals auf den Inhalt deines Formulares zugreifen.

Ist das sendmail2.php oder sendmail.php? Bedenke das du sendmail2.php beim abschicken aufrufst, nur deine method ist noch unklar, per Get oder Post.
PHP:
<?php
function sendmail($mail_empfaenger, $betreff, $text, $mail_absender){
	mail( $mail_empfaenger, $betreff, $text, $mail_absender );
}
?>

sendmail.php oder 2 ist egal. hab da 2 testversionen?
wo bekommt man eigentlich ne gute sendmail.php her?

danke erstmal
wie meinst du das genau mit einem formular?
ich will da kein eingabefeld haben.
jede zeile der tabelle bekommt die mail-adresse per string und hat auch einen button.
den betreff gibt es ebenfalls per string und der text ist auch schon vorgefertigt.
sobald ich auf den button drücke soll die mail verschickt werden.

anbei mal die tabelle.

ich lese den link von dir gerdae!
danke, hört sich gut an...mal schauen obs hilft.
 

Anhänge

  • bild.jpg
    bild.jpg
    59,8 KB · Aufrufe: 66
so z.B.

PHP:
<form action="sendmail2.php" method="post"
<input type="hidden" name="mail_empfaenger" value="'.$mail_empfaenger.'">
<input type="submit" value="Mail">
</form>

und in der sendmail2.php, kannst du dann auf die variable so zugreifen.

PHP:
$_POST['mail_empfaenger'];
 
so z.B.

PHP:
<form action="sendmail2.php" method="post"
<input type="hidden" name="mail_empfaenger" value="'.$mail_empfaenger.'">
<input type="submit" value="Mail">
</form>

und in der sendmail2.php, kannst du dann auf die variable so zugreifen.

PHP:
$_POST['mail_empfaenger'];


wäre das dann hier richtig?

Code:
$mail_empfaenger="test@test.de";
		echo "<td width=\"50\" height=\"1\" valign=\"middle\" align=\"center\">";
		echo "<form action=\"sendmail2.php\" method=\"post\"
<input type=\"hidden\" name=\"mail_empfaenger\" value=\"'.$mail_empfaenger.'\">
<input type=\"submit\" value=\"Mail\">
</form>";
		echo "</td>";

bei mir kommen keine mails an?!
woran kann das liegen?
geht die mail fkt nicht, liegt es am server?

hier mein sendmail code.
gibts eigentlich ne gute fertige sendmail.php im netz?
email geändert

Code:
<?php
$email = $_POST['mail_empfaenger'];
mail( $email, "Email Subject", "test", "From: test@test.de" );
print "Congratulations your email has been sent";
?>
 
du musst natürlich den form Tag auch schliessen ">"
PHP:
$mail_empfaenger="test@test.de";
		echo '<td width="50" height="1" valign="middle" align="center">';
		echo '<form action="sendmail2.php" method="post">
                         <input type="hidden" name="mail_empfaenger" value="'.$mail_empfaenger.'">
                         <input type="submit\" value="Mail">
                         </form>';
		echo '</td>';

sendmail2.php

PHP:
$empfaenger = $_POST['mail_empfaenger'];
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();



if(mail($empfaenger, $betreff, $nachricht, $header)){
print "Congratulations your email has been sent";
}else{
 die('Konnte Mail nicht senden!');
}
 
Zuletzt bearbeitet von einem Moderator:
Danke!

die meldung, dass die datei verschickt wurde kommt nun, ich habe sogar dahinter schreiben lassen an wen.
aber es kommen keine mails an.
hier nochmal der code der php mit der tabelle.

PHP:
for ($i=0; $i<(sizeof($license)-1)/4; $i++)
	{
		echo "<tr>";
		echo "<td width='350' height='1'>";
		echo "<FONT FACE='Arial' SIZE=2>";
		echo $license[$pos1];
		echo "</FONT>";
		echo "</td>";
		echo "<td width='300' height='1'>";
		$pos1=$pos1+2;
		echo "<FONT FACE='Arial' SIZE=2>";
		echo $license[$pos1];
		echo "</FONT>";
		echo "</td>";
		$mail_empfaenger="marcus.test@gmx.de";
		echo "<td width='50' height='1' valign='middle' align='center'>";
		echo "<form action='sendmail2.php' method='post'>
                         <input type='hidden' name='mail_empfaenger' value='$mail_empfaenger'>
                         <input type='submit' value='Mail'>
                         </form>";
        echo "</td>";
		echo "</tr>";
		$pos1=$pos1+2;
	}

sendmail2.php
PHP:
$empfaenger = $_POST['mail_empfaenger'];
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();



if(mail($empfaenger, $betreff, $nachricht, $header)){
print 'Congratulations your email has been sent to ';
print $empfaenger;
print '.';
}else{
 die('Konnte Mail nicht senden!');
}
 
z.B. an deinen Absender(SASL Authentifizierung), der muss auch existieren und natürlich vorrausgesetzt den Empfänger gibt es wirklich.
 
Zurück