aktuelle.kurse/m133/4_Modulinhalte_und_Uebungen/01-Grundlagen/03-PHP-einfach/einf_php_email.php.htm

296 lines
14 KiB
HTML
Raw Normal View History

2022-02-24 09:37:43 +01:00
<html>
<head>
<title>PHP-Einfach.de - PHP Einf&uuml;hrung - E-Mails verschicken</title>
<meta name="Author" content="Andavos">
<meta name="Publisher" content="Andavos">
<meta name="Copyright" content="Andavos">
<link rel="stylesheet" href="css/main.css" tppabs="http://www.php-einfach.de/offline/css/main.css" type="text/css">
</head>
<body text="#000000" bgcolor="#DDDDDD" link="#004A95" alink="#004A95" vlink="#525252">
<table align="center" height="100%" width="100%" cellspacing="0" border="0" cellpadding="0">
<tr>
<td align="center" valign="middle" height="100%" width="100%">
<table height="100" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" bgcolor="#FFE09F" width="750"><img src="grafiken/banner_top.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/banner_top.jpg" width="750" height="100" border="0" alt="">
<a name="oben"></a></td>
</tr>
</table>
<table height="650" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td class="black" height="100" width="150">
<br><b><center><img src="grafiken/side_navigation.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_navigation.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" class="blue" href="http://www.php-einfach.de/index.php"><b>&raquo;</b> Startseite</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_news.php"><b>&raquo;</b> News&uuml;bersicht</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_email.php"><b>&raquo;</b> Kontakt</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_impressum.php"><b>&raquo;</b> Impressum</a><br><br>
<center><img src="grafiken/side_community.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_community.gif" width="150" height="25" border="0" alt=""></center>
<a target="_blank" class="blue" target="_blank" href="http://forum.php-einfach.de/"><b>&raquo;</b> Forum</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_gaestebuch.php"><b>&raquo;</b> G&auml;stebuch</a><br><br>
<center><img src="grafiken/side_tutorials.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_tutorials.gif" width="150" height="25" border="0" alt=""></center>
<a class="blue" href="einf_php.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php.php"><b>&raquo;</b> Einf&uuml;hrung PHP</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_anfang.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_anfang.php"><b>&raquo;</b> Anfang</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_erste_schritte.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_erste_schritte.php"><b>&raquo;</b> Erste Schritte</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_variablen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_variablen.php"><b>&raquo;</b> Variablen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_if-anweisung.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_if-anweisung.php"><b>&raquo;</b> if-Anweisung</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_logische_operatoren.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_logische_operatoren.php"><b>&raquo;</b> Log. Operatoren</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_uebung1.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_uebung1.php"><b>&raquo;</b> &Uuml;bung</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_dateien.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien.php"><b>&raquo;</b> Dateien</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_schleifen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_schleifen.php"><b>&raquo;</b> Schleifen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_array.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_array.php"><b>&raquo;</b> Array</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_dateien2.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien2.php"><b>&raquo;</b> Dateien Teil 2</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_datum.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_datum.php"><b>&raquo;</b> Datum & Zeit</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_email.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_email.php"><b>&raquo;</b> Mail Funktion</a><br>
<div style="position: relative; left:15;" >
<a class="blue"href="einf_php_suchen_ersetzen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_suchen_ersetzen.php"><b>&raquo;</b> Suchen & Ersetzen</a><br>
<a class="blue" href="einf_php_nuetz_funktionen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_nuetz_funktionen.php"><b>&raquo;</b> N&uuml;tzliche Funktionen</a><br>
</div>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_sessions.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_sessions.php"><b>&raquo;</b> Sessions</a><br><br>
<a class="blue" href="einf_mysql.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql.php"><b>&raquo;</b> Einf&uuml;hrung MySQL</a><br>
<br>
<center>
<a target="_blank" href="http://www.php-einfach.de/nav_verlinkung.php"><img src="grafiken/php-einfach.gif" tppabs="http://www.php-einfach.de/offline/grafiken/php-einfach.gif" width="88" height="31" border="0" alt="PHP-Einfach.de"></a><br><br>
<a target="_blank" href="http://www.digicount.de/"><b>Counterdienst:</b></a>
<a target="_blank" href="http://www.php-einfach.de/nav_digicount.php"><div>
<img src="grafiken/digicount_livedemo.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/digicount_livedemo.jpg" border="0" alt="Digicount.de"><br>
<small>Unser werbefreier Counter- und Statistikdienst</small></div>
</a>
</center>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFFFFF" width="430">
<table width="430" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="10"></td>
<td valign="top" class="black" height="100" width="410">
<br>
<h4>E-Mails verschicken</h4>
Die E-Mail Funktion von PHP ist sehr praktisch, denn damit k&ouml;nnen wir Formulardaten versenden lassen oder ganze Newsletter-Scripts erstellen.
Man kann dieses Verfahren auch f&uuml;r ein G&auml;stebuch benutzen, z.B. das man eine E-Mail erh&auml;lt, wenn sich jemand in das G&auml;stebuch eintr&auml;gt.<br><br>
<b><font color="#FF0000">Wichtig</font></b><br>
Wenn ihr diese Funktion auf eurem Computer ausf&uuml;hrt, erhaltet ihr normalerweise eine Fehlermeldung: <br>
<b>Warning: mail():...</b><br><br>
Dies kommt, weil euer virtueller Server <b>keine</b> E-Mails verschicken kann. Die Fehlermeldung k&ouml;nnt ihr ignorieren, denn auf dem echtem Server sollte sie eigentlich nicht mehr auftreten.<br><br>
Mit der Funktion <b>mail()</b> k&ouml;nnt Ihr die Mails verschicken, der Befehl sieht so aus:
<font color="#606060">
<pre>
&lt;?php
mail(<i>Empf&auml;ngeremail, Betreff, Nachricht,
"From: Absender &lt;absenderemail>"</i>);
?>
</pre>
</font>
Es ist sinnvoll die einzelnen Texte in Variablen zu speichern, damit man die &Uuml;bersicht beh&auml;lt.<br><br>
So lassen sich aber nur Text E-Mails verschicken, HTML E-Mails sind etwas komplizierter (siehe unten).<br><br>
Eine fertige Mail-Funktion w&uuml;rde so aussehen:
<font color="#606060">
<pre>
&lt;?php
$empfaenger = "empf@domain.de";
$betreff = "Die Mail-Funktion";
$from = "From: Nils Reimers &lt;absender@domain.de>";
$text = "Hier lernt Ihr, wie man mit PHP Mails
verschickt";
mail($empfaenger, $betreff, $text, $from);
?>
</pre>
</font>
So wird eine E-Mail von <i>absender@domain.de</i> an <i>empf@domain.de</i> verschickt.<br><br>
Wenn euer Server richtig eingestellt ist, sollte die E-Mail sofort ankommen.<br><br>
Nat&uuml;rlich k&ouml;nnt Ihr die Texte auch von einem Formular abfragen.<br><br>
Die Mail wird so verschickt wie es im Quelltext des Scripts steht. Wenn Ihr z.B. ein <b>&uuml;</b> durch <b>&amp;uuml;</b> (HTML Code f&uuml;r ein &uuml;) ersetzen lasst, so steht es sp&auml;ter in der Mail: <b>&amp;uuml;</b>. Denn dort werden dann nicht die Umlaute angezeigt, sondern der HTML-Code daf&uuml;r (bei Text Emails).<br><br>
Au&szlig;erdem d&uuml;rft Ihr keine HTML-Befehle benutzen, wenn z.B. in der E-Mail &lt;br> steht, so wird das nicht in einen Zeilenumbruch verwandelt, sondern in der Mail steht dann &lt;br>.<br><br>
F&uuml;r Zeilenumbr&uuml;che reicht ein einfaches Enter im Quelltext bzw. ein <b>\n</b>. Um etwas Einzur&uuml;cken, m&uuml;sst ihr Tab bzw. Space benutzen.<br><br>
<h3>HTML-Emails</h3>
Man kann mit PHP auch HTML-Emails verschicken<br>
Aber Ihr solltet wissen, das nicht alle E-Mail Programme und E-Mail Anbieter diese HTML-Emails richtig anzeigen.<br><br>
Man kann der E-Mail dann auch einen schwarzen Hintergrund geben mit wei&szlig;er Schrift.<br>
<br>
Aber <b>Achtung</b>, nicht alle E-Mail Programme/Anbieter zeigen die wei&szlig;e Schrift an. Diese ersetzten sie dann manchmal durch schwarze Schrift, oder den schwarzen Hintergrund durch einen wei&szlig;en.
Somit kann der Empf&auml;nger die E-Mail nicht lesen, weil der Text und der Hintergrund identisch sind.<br><br>
Damit PHP HTML-Emails verschicken kann, m&uuml;sst Ihr die <b>$from</b> Variable etwas ver&auml;ndern.
<font color="#606060">
<pre>
&lt;?php
$empfaenger = "empf@domain.de";
$betreff = "Die Mail-Funktion";
$from = "From: Nils Reimers &lt;absender@domain.de>\n";
$from .= "Reply-To: absender@domain.de\n";
$from .= "Content-Type: text/html\n";
$text = "Hier lernt Ihr, wie man mit &lt;b>PHP&lt;/b> Mails
verschickt";
mail($empfaenger, $betreff, $text, $from);
?>
</pre>
</font>
Die Variable <b>$from</b> wird einfach erg&auml;nzt, aber achtet darauf, das nach dem Absender noch ein <b>\n</b> stehen muss.<br><br>
Au&szlig;erdem haben wir noch eine Reply (Antwort) Adresse angegeben. <br><br>
Bei dem Text m&uuml;ssen wir aufpassen, dass wir die Anf&uuml;hrungszeichen " durch ein Backslash (\) maskieren m&uuml;ssen.<br><br>
<b>Beispiel:</b>
<b>Beispiel 2:</b>
<font color="#606060">
<pre>
&lt;?php
$text = "Hier lernt Ihr, wie man mit
&lt;font color=\"red\">PHP&lt;/font> Mails verschickt";
?>
</pre>
</font>
Der Text der Nachricht muss in dem Fall mittels HTML formatiert werden!
Hier reicht f&uuml;r ein Zeilenumbruch kein Enter mehr, sondern man muss &lt;br> benutzen.<br><br>
<h3>Extra Funktionen</h3>
Wir k&ouml;nnen mir der <b>mail-Funktion</b> noch mehr machen, diese Angaben braucht man aber nicht unbedingt.<br><br>
Alle Angaben stehen im <b>From</b> Abschnitt.<br><br>
<font color="#606060">
<pre>
&lt;?php
$from="From:Nils Reimers&lt;email@domain.de>\n";
$from .= "Reply-To: email@domain.de\n";
$from .= "Cc: email2@domain.de\n";
$from .= "Bcc: email3@domain.de\n";
$from .= "X-Mailer: PHP/" . phpversion(). "\n";
$from .= "X-Sender-IP: $REMOTE_ADDR\n";
$from .= "Content-Type: text/html";
?>
</pre>
</font>
Mit Cc und Bcc wird die E-Mail an zwei weitere Adressen gesendet. Diese beiden Adresse sind der Cc und Bcc, diese Funktion kennt man auch von seinem Email-Anbieter.<br><br>
Danach wird beim <b>X-Mailer</b> die PHP-Version des Servers angegeben. Mit <b>X-Sender-IP</b> erfahren wir die IP-Adresse des Versenders.<br><br>
Die letzte Angabe bestimmt wieder, das es eine HTML Mail ist.<br><br>
Bei Mailprogrammen wie z.B. Outlook oder Thunderbird kann man sich den Quelltext einer Email anzeigen lassen. Dort gibt es dann auch einen Head-Bereich, der bei uns der Variable $from entspricht.<br>
Manche Werte werden von dem Mail-Server angeh&auml;ngt, andere k&ouml;nnen wir aber im PHP Script definieren.<br><br>
Als n&auml;chsten lernen wir, wie man einen Text <a href="einf_php_suchen_ersetzen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_suchen_ersetzen.php">durchsuchen und ersetzen</a> kann.
<br><br>
<a href="http://www.php-einfach.de/nav_impressum.php">Autor Andavos</a>
<div align="center"><a href="#oben">Nach oben</a></div>
</td>
<td height="100" width="10"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td valign="top" class="black2" height="100" width="150">
<br><b><center><img src="grafiken/side_news.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_news.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://www.php-einfach.de/nav_news.php">News</a>
<br><br>
<b><center><img src="grafiken/side_forum.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_forum.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://forum.php-einfach.de/">Forum</a>
<br><br>
<b><center><img src="grafiken/side_newsletter.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_newsletter.gif" width="150" height="25" border="0" alt="Newsletter"></center></b>
<form target="_blank" method="post" action="http://www.php-einfach.de/clanletter/save.php">
<br> <br>
<div align="center">&copy; PHP-Einfach.de 2003 - 2007 </div>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>