Originalmente inviato da
Lando
Qualcuno mi sa consiglîare un buon mail form?
Se ho capito bene vuoi del codice per madare una email, giusto?
Qui se vuoi c'č un esempio del codice usato sul mio sito:
Questa č la form da compilare per spedire il messaggio (da mettere in un file html)
Codice HTML:
<form name="form1" method="get" action="mymail.php">
<input name="img" type="hidden" value="nomefile">
<table width="100%" border="0" cellpadding="0">
<tr>
<td class="outerText" ><div align="right">Email del destinatario (to) </div></td>
<th scope="col"> <div align="left">
<input name="mailDest" type="text" size="28">
</div></th>
</tr>
<tr>
<td class="outerText"><div align="right">Nome del destinatario (name) </div></td>
<td><input name="nomeDest" type="text" size="28"></td>
</tr>
<tr>
<td class="outerText"><div align="right">Email del mittente (from) </div></td>
<td><input name="mailMitt" type="text" size="28"></td>
</tr>
<tr>
<td class="outerText"><div align="right">Nome del mittente (name) </div></td>
<td><input name="nomeMitt" type="text" size="28"></td>
</tr>
<tr>
<td class="outerText"><div align="right">Testo (text) </div></td>
<td><textarea name="textMitt" rows="5"></textarea></td>
</tr>
<tr><td></td><td><input name="Invia" value="Invia" type="submit"></td></tr>
</table>
</form>
E questo č il codice della pagina mymail.php cui fa riferimento l'action del form:
Codice PHP:
<?php
$ip = getenv("REMOTE_ADDR");
$nomeDest=$_GET['nomeDest'];
$mailDest=$_GET['mailDest'];
$nomeMitt=$_GET['nomeMitt'];
$mailMitt=$_GET['mailMitt'];
$textMitt=$_GET['textMitt'];
$pictMitt=$_GET['img'];
$somethingwrong=0;
$preg = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$";
if (!(preg_match("/$preg/", $mailDest) or !preg_match("/[a-zA-Z0-9]/", $mailDest)) or $mailDest=="")
{
$notice="\"Email del destinatario (to)\" non valida";
$somethingwrong=1;
}
else
{
if (!(preg_match("/$preg/", $mailMitt) or !preg_match("/[a-zA-Z0-9]/", $mailMitt) )or $mailMitt=="")
{
$notice= "\"Email del mittente (from)\" non valida";
$somethingwrong=1;
}
else
{
if ($nomeMitt=="" or $nomeDest=="")
{
$notice= "E necessario scivere i nomi (names required)";
$somethingwrong=1;
}
else
{
$msg="<html><body bgcolor=\"#DCF1FC\" align=\"center\" link=\"blue\" vlink=\"#440000\">
<font style=\"font-family: Arial; font-size: 15px; font-weight: bold; color: #00236A;\">
<img src=http://guidomarche.altervista.org/sito/graph/postcard.jpg>
<br>
Ciao $nomeDest! <a href=mailto:$mailMitt>$nomeMitt</a> ti ha mandato una cartolina dalla Valle Scrivia usando il
servizio offerto da <a href=\"http://guidomarche.altervista.org\">guidomarche.altervista.org</a>.
<br>
<hr size=1 height=1 color=#ADCADA>
</font><font style=\"font-family: Arial; font-size: 11px; font-weight: bold; color: #00236A;\">Questo č il testo del messaggio:</font><br><br>
<font style=\"font-family: Arial; font-size: 15px; font-weight: bold; color: #00236A;\">$textMitt<br><hr size=1 height=1 color=#ADCADA>
<a href= \"http://guidomarche.altervista.org/sito/vscrivia/graph/$pictMitt".".jpg\" target=_blank><img alt=\"Click for fullscreen\" border=0 height=480 width=640 src=\"http://guidomarche.altervista.org/sito/vscrivia/graph/$pictMitt".".jpg\"></a><hr size=1 height=1 color=#ADCADA>
Sender IP (report abuse): <a href=http://www.ripe.net/perl/whois?form_type=simple&searchtext=$ip>$ip</a></font><hr size=1 height=1 color=#ADCADA></body></html>
";
$from="From: Una cartolina per te! <guidomarche@altervista.org>\r\n";
$result = @mail($mailDest, 'Cartoline della Valle Scrivia', preg_replace("#(?<!\r)\n#s", "\n", $msg), "$from"."Content-Type: text/html;\r\n");
if ($result==1)
{
echo "<center><table class=inner width=60%><thead class=inner><tr><td>Riepilogo</td></tr></thead><tr><td class=menuText>";
echo "Inviato a: <h3>$nomeDest ($mailDest)</h3><br>Da: <h3>$nomeMitt ($mailMitt)</h3><br>Testo: <h3>$textMitt</h3><br>Foto: <h3>$pictMitt</h3><br>";
echo "Il tuo IP č stato mandato al destinatario insieme al messaggio: <h3>$ip</h3><br>";
echo "</td></tr></table></center>";
}
else echo "Errore imprevisto";
}
}
}
if ($somethingwrong==1)
{
echo "<div align=center class=outerText>ATTENZIONE!!! Non tutti i campi sono stati riempiti correttamente:</div><br>";
echo "<div align=center class=outerText>$notice</div><br>";
echo "<div align=center class=outerText><a href=javascript:history.back()>Indietro</a></div>";
}
?>
$msg č il corpo della mail che verrā spedita. Io uso email in formato html. Se vuoi farle testuali, basta cambiare il Content-Type in es plain/text
Se vuoi vedere come funziona, basta che tu vada sul mio sito, e dalle sezione delle fotografie tu provia spedire una cartolina.
Ciao