View Full Version : E-mail in HTML tramite script PHP
A questo punto la domanda nasce spontanea:
Sarà mai possibile mandare e-mail HTML da script PHP???
Grazie, Adri.
igorlazunna
27-03-2003, 08:54
Assolutamente si
<?
$dest="dest@mail.it";
$subj="Soggetto mail";
$testo="<br> Il testo <b>che vuoi</b> con flag html: <br> e se vuoi anche dei link<br><a href=http://www.dominio.it>WWW</a>";
mail($dest, $subj, $testo, "From: Nome <mail@mitt.com>\n" . "X-Mailer: PHP 4.x\n" . "Content-type: text/html; charset=iso-8859-1;");
?>
Scusa se rompo, ma qualcosa del tipo:
<a href="http://www.miodominio.it/news/prova.php"><img src="http://www.miodominio.it/images/picopallino.gif" width="50" height="30"></a>
non si può fare?
Grazie :D
igorlazunna
27-03-2003, 13:11
perchè no. tutto queelo che vuoi mettere lo metti nel messaggio della email
(nell'esempio di prima, $testo)
PS Attenzione alle virgolette, se vuoi inserire le virgolette nel link, devi fare cosi:
$testo="<a href=\"http://www.tuodominio.it\">Link</a>";
Ciao Igor,
In base alle tue istruzioni, ho modificato un semplice form-mail molto spartano :D solo che questo non manda "e-mail html compatibili", mi sai dire dove sbaglio???
<html>
<head>
<title>Provamail</title>
</head>
<body>
<?
//INIZIO FORM
$blocco_modulo="
<form method=\"post\" action=\"$PHP_SELF\">
<p><strong>Il tuo nome:</strong><br>
<input type=\"text\" name=\"nome\" value=\"$nome\" size=30></p>
<p><strong>Il tuo indirizzo e-mail:</strong><br>
<input type=\"text\" name=\"email\" value=\"$email\" size=30></p>
<p><strong>oggetto</strong><br>
<input type=\"text\" name=\"oggetto\" value=\"$oggetto\" size=30></p>
<p><strong>Messaggio:</strong><br>
<textarea name=\"messaggio\" cols=40 rows=5 wrap=virtual>$messaggio</textarea></p>
<p><input type=\"reset\" name=\"Reimposta\" value=\"reimposta\">
<input type=\"hidden\" name=\"operazioni\" value=\"esegui_operazioni\">
<input type=\"submit\" name=\"invia\" value=\"Invia il modulo!\"></p>
</form>
";
//FINE FORM
if ($operazioni!="esegui_operazioni") {
echo "$blocco_modulo";
}
else if ($operazioni=="esegui_operazioni") {
if ($nome=="") {
$err_nome="<font color=red>Attenzione: digita il tuo nome!</font><br>";
$invia="no";
}
if ($email=="") {
$err_mail="<font color=red>Attenzione: digita il tuo indirizzo e-mail!</font><br>";
$invia="no";
}
if ($oggetto=="") {
$err_oggetto="<font color=red>Attenzione: specifica l'oggetto della lettera!</font><br>";
$invia="no";
}
if ($messaggio=="") {
$err_messaggio="<font color=red>Attenzione: digita un messaggio!</font><br>";
$invia="no";
}
if ($invia!="no") {
$destinatario="novamail@libero.it";
$headers = "From: $nome<$email>\n";
$headers .= "Reply-To: <$email>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
$headers .= "X-Sender: $nome<$email>\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <$email>\n";
$headers .= "Content-type: text/html; charset=iso-8859-1;";
$msg="E-mail inviata dal sito web\n\n";
$msg.="Nome mittente:
$nome\n";
$msg.="Indirizzo e-mail mittente:
$email\n\n";
$msg.="messaggio:\n
$messaggio";
mail($destinatario, $oggetto, $msg, $headers);
//LETTERA DI RISPOSTA
$risposta="
<html>
<head>
<title>ce vedemo</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
Ciao $nome,
abbiamo ricevuto il tuo messaggio:
$messaggio.
Se ci hai fatto qualche particolare richiesta ti risponderemo\n
al più presto all'indirizzo e-mail da te segnalato: $email.\n
Nell'occasione ti porgiamo i nostri saluti.\n
Lo staff di italiantour\n\n
<a href=\"http://napoli.italiantour.it\">
<img src=\"http://www.italiazoom.net/images/avatar/faccina.ico\"></a>
<img src=\"http://www.italiazoom.net/images/inclusioni/espanol-50x30.gif\" width=\"50\" height=\"30\">
</body>
</html>
";
$oggetto_risp="Re:$oggetto";
$headers_risp = "From: ItaliaZoom<info@italiazoom.net>\n";
$headers_risp .= "Reply-To: <info@italiazoom.net>\n";
$headers_risp .= "MIME-Version: 1.0\n";
$headers_risp .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
$headers_risp .= "X-Sender: ItaliaZoom<info@italiazoom.net>\n";
$headers_risp .= "X-Mailer: PHP4\n"; //mailer
$headers_risp .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers_risp .= "Return-Path: <$email>\n";
$headers_risp .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($email, $oggetto_risp, $risposta, $headers_risp);
echo "<p>L'e-mail è stata inviata!</p>";
}
else if ($invia=="no") {
echo "$err_nome";
echo "$err_mail";
echo "$err_messaggio";
echo "$err_oggetto";
echo "$blocco_modulo";
}
}
?>
</body>
</html>
Gracias.
igorlazunna
27-03-2003, 21:02
togli la riga:
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
e poi riprova. dovrebbe funzionare correttamente
Ho fatto come mi hai detto! :D
Ma niente da fare! :cry: :muro:
<html>
<head>
<title>Provamail</title>
</head>
<body>
<?
//INIZIO FORM
$blocco_modulo="
<form method=\"post\" action=\"$PHP_SELF\">
<p><strong>Il tuo nome:</strong><br>
<input type=\"text\" name=\"nome\" value=\"$nome\" size=30></p>
<p><strong>Il tuo indirizzo e-mail:</strong><br>
<input type=\"text\" name=\"email\" value=\"$email\" size=30></p>
<p><strong>oggetto</strong><br>
<input type=\"text\" name=\"oggetto\" value=\"$oggetto\" size=30></p>
<p><strong>Messaggio:</strong><br>
<textarea name=\"messaggio\" cols=40 rows=5 wrap=virtual>$messaggio</textarea></p>
<p><input type=\"reset\" name=\"Reimposta\" value=\"reimposta\">
<input type=\"hidden\" name=\"operazioni\" value=\"esegui_operazioni\">
<input type=\"submit\" name=\"invia\" value=\"Invia il modulo!\"></p>
</form>
";
//FINE FORM
if ($operazioni!="esegui_operazioni") {
echo "$blocco_modulo";
}
else if ($operazioni=="esegui_operazioni") {
if ($nome=="") {
$err_nome="<font color=red>Attenzione: digita il tuo nome!</font><br>";
$invia="no";
}
if ($email=="") {
$err_mail="<font color=red>Attenzione: digita il tuo indirizzo e-mail!</font><br>";
$invia="no";
}
if ($oggetto=="") {
$err_oggetto="<font color=red>Attenzione: specifica l'oggetto della lettera!</font><br>";
$invia="no";
}
if ($messaggio=="") {
$err_messaggio="<font color=red>Attenzione: digita un messaggio!</font><br>";
$invia="no";
}
if ($invia!="no") {
$destinatario="novamail@libero.it";
$headers = "From: $nome<$email>\n";
$headers .= "Reply-To: <$email>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Sender: $nome<$email>\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <$email>\n";
$headers .= "Content-type: text/html; charset=iso-8859-1;";
$msg="E-mail inviata dal sito web\n\n";
$msg.="Nome mittente:
$nome\n";
$msg.="Indirizzo e-mail mittente:
$email\n\n";
$msg.="messaggio:\n
$messaggio";
mail($destinatario, $oggetto, $msg, $headers);
//LETTERA DI RISPOSTA
$risposta="
<html>
<head>
<title>ce vedemo</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>
<body bgcolor=\"#FFFFFF\" text=\"#000000\">
Ciao $nome,
abbiamo ricevuto il tuo messaggio:
$messaggio.
Se ci hai fatto qualche particolare richiesta ti risponderemo\n
al più presto all'indirizzo e-mail da te segnalato: $email.\n
Nell'occasione ti porgiamo i nostri saluti.\n
Lo staff di italiantour\n\n
<a href=\"http://napoli.italiantour.it\">
<img src=\"http://www.italiazoom.net/images/avatar/faccina.ico\"></a>
<img src=\"http://www.italiazoom.net/images/inclusioni/espanol-50x30.gif\" width=\"50\" height=\"30\">
</body>
</html>
";
$oggetto_risp="Re:$oggetto";
$headers_risp = "From: ItaliaZoom<info@italiazoom.net>\n";
$headers_risp .= "Reply-To: <info@italiazoom.net>\n";
$headers_risp .= "MIME-Version: 1.0\n";
$headers_risp .= "X-Sender: ItaliaZoom<info@italiazoom.net>\n";
$headers_risp .= "X-Mailer: PHP4\n"; //mailer
$headers_risp .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers_risp .= "Return-Path: <$email>\n";
$headers_risp .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($email, $oggetto_risp, $risposta, $headers_risp);
echo "<p>L'e-mail è stata inviata!</p>";
}
else if ($invia=="no") {
echo "$err_nome";
echo "$err_mail";
echo "$err_messaggio";
echo "$err_oggetto";
echo "$blocco_modulo";
}
}
?>
</body>
</html>
Se hai suggerimenti... :D
Ciao.
igorlazunna
28-03-2003, 08:55
il codice è corretto. mi spieghi in che senso non vengono inviati messaggi html corretti ?
Semplice, le e-mail arrivano come testo nero su bianco, ad esempio
<img src=\"http://www.italiazoom.net/images/inclusioni/espanol-50x30.gif\" width=\"50\" height=\"30\">
Mi arriva esattamente così, solo privo di slashes (\)
<img src="http://www.italiazoom.net/images/inclusioni/espanol-50x30.gif" width="50" height="30">
L'e-mail è di testo, non decodifica l'html come un browser. :cry:
Staremo a vedere che è più duro! :muro:
Ciao
igorlazunna
28-03-2003, 17:07
quindi il problema è nella mail di risposta....
guarda come mandi l'emai:
$headers_risp .= "Content-Type: text/plain; charset=iso-8859-1\r\n"; :mad:
Cioè la mandi come testo
metti:
$headers_risp .= "Content-Type: text/html; charset=iso-8859-1\r\n";
e correggi il tag <a href> perchè non è chiuso e non è specificato il link
:eek: Hai proprio ragione, alle volte dormo sveglio!
Come ben puoi immaginare ora è tutt'ok,
:sofico:
grazie ancora e auguri per il forum!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.