Mail: non funzionano i codici html!

the_boss

Utente Attivo
21 Feb 2010
53
0
0
nell'invio di mail tramite php non funzionano i codici html.
cioè, vorrei inviare un link che al posto del link c'è scritto quello che voglio.
tipo:
HTML:
<a href="http://----">Clicca qui</a>
con msn non funziona, mi scrive proprio tutto il codice tranne il link che diventa cliccabile.
come faccio??
 

lotus

Utente Attivo
5 Mag 2009
543
8
0
Cortesemente puoi postare il codice che hai realizzato?

Grazie
Ciao, Ciro
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
In ogni caso l'invio di e-mail in formato HTML con PHP è una procedura piuttosto lunga e complicata. Non basta inserire all'interno del contenuto il codice che vuoi. Per fortuna esistono alcune classi come PHPMailer che semplificano di molto il lavoro. Ti consiglio di dare un'occhiata a qualche tutorial (se non sbaglio ce n'è anche uno qui, sul sito).
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Per inviare mail contenenti codice HTML è necessario settare opportunamente le intestazioni della mail. Tra queste vanno configurate "MIME-Version", "Content-Type" e "Content-Transfer-Encoding". Per cui al tuo header devi aggiungere:

PHP:
$header = "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";

Ovviamente perchè il tutto funzioni correttamente il client di posta deve essere configurato per poter ricevere mail contenente codice HTML.
 

the_boss

Utente Attivo
21 Feb 2010
53
0
0
grazie, fantastico funziona ^^
solo che ora nel messaggio non funziona il
PHP:
\n
XD
però ora si puo usare il br quindi apposto ^^
grazie infinite ^^
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Comunque di solito, quando vengono inviate le e-mail in HTML, vengono inviate due versioni del messaggio. Una contiene il messaggio formattato in HTML, e l'altra contiene il messaggio in formato testo semplice. In questo modo, quando invii una e-mail ad un client che non è configurato per visualizzare il codice HTML, automaticamente verrà visualizzata la versione solo testo.
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Alessandro mi ha preceduto e quello che dice è giustissimo. Per ovviare all'inconveniente dei client non configurati per ricevere mail contenenti HTML basta inviare una mail con due testi alternativi, uno HTML e l'altro di puro testo.
Per fare ciò si utilizza il "Content-Type multipart/alternative" che indica che il messaggio è costituito da più parti alternative tra di loro.
Per dividere le varie parti viene utilizzato un separatore chiamato Boundary. Esso è semplicemente una stringa arbitraria unica all'interno del messaggio. Essa deve iniziare con due trattini "--".
La stessa stringa servirà anche come terminatore del messaggio ed in questo caso terminerà con due trattini "--"
In genere il separatore (Boundary) si ottiene utilizzando la funzione md5() e la funzione time() per generare una stringa pseudocasuale.

Un esempio di codice per l'invio di una mail multipart/alternative è il seguente:

PHP:
$boundary = "==Boundary_".md5(time()); 

$header = "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/alternative;\n";
$header .= " boundary=\"$boundary\";\n\n";

// Parte del messaggio solo testo
$msg = "--$boundary\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
$msg .= "Inserire qui il messaggio in formato solo testo.\n\n";

// Parte del messaggio HTML
$msg .= "--$boundary\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
$msg .= "Inserire qui il messaggio in formato HTML\n";

$msg .= "--$boundary--\n";
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
A [HTML] Testo mail non visualizzabile su IOS HTML e CSS 0
A Libero mail non funziona Posta Elettronica 3
A Php mail non invia due mail di seguito PHP 3
E [PHP] mail inviata anche con campi obbligatori non compilati PHP 9
E [Javascript] Messaggio di avvenuto invio mail non visualizzato Javascript 1
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
L mail() non invia mail PHP 4
M Non arrivano piu mail aiuto SEO e Posizionamento 4
asevenx link cliccabile che non funziona con invio mail PHP 1
D form mail non funzionante PHP 1
M non ci do fuori con il form mail PHP 1
M Mail in html con allegato non coesistono? PHP 6
Shyson Mail non si invia PHP 14
N Aiuto php : Modulo Mail non funzionante - Dove sbaglio ? PHP 5
M Perchè non invia la mail in formato html? PHP 5
A Funzione mail() non mi funziona da quando sono passato ad aruba PHP 1
StarFish Web Mail Aruba: non riesco ad entrare Hosting 1
Longo8 E-mail non ricevuta Posta Elettronica 2
S passaggio a PHP Version 5.2.6 e la form e mail non funziona piu' PHP 14
N non invio mail da locale PHP 15
C Inviare mail con allegato PDF non uppato PHP 2
SolidSnake4 invio mail html con php non va PHP 6
T FORM MAIL che non mi riesce PHP 18
B improvvisamente mail() non funziona più PHP 12
borgo italia non solo mail() PHP 2
B l'immagine non si visualizza nell'e-mail PHP 1
D Non partono le mail da php PHP 0
G mail() non mi invia le email PHP 1
S carrello, non riesco ad inviare tutti gli ordini via mail Classic ASP 9
I Rispondi alla mail... ma word non va. Windows e Software 1
M il loop per l'invio mail con CDOSYS ad un tratto non funziona più Classic ASP 1
peppoweb Hotmail: non più di 100 e-mail al giorno Posta Elettronica 0
I recupera password via mail salva pasword password_hash PHP 2
I resetta password via mail PHP 2
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
K Importazione e-mail da account gmail ad un altro account gmail Posta Elettronica 0
R Invio mail con allegati multipli PHP 0
A Mail con funzione mail() riconosciute come spam PHP 9
R Invio mail con allegati da directory PHP 1
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
Daniele_Carrara Problema timeout - invio mail PHP 7
G Con Microsoft Outlook 2016 come si possono cancellare le mail doppie? Posta Elettronica 0
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
M configurare mail register.it (con 1000 invii/die) su Outlook Posta Elettronica 0
Marti1! Problema con casella mail cancellata Posta Elettronica 3
U PHP bottone per invio mail o ritorno al form PHP 15
G Invio mail con php da dati prelevati da un database PHP 9
AC1 [PHP] Invio Mail PHP 18
L Problema funzione mail() PHP PHP 3

Discussioni simili