PDA

View Full Version : PHP mail() la mail risulta inviata come allegato, possibile?!


zUmBo!
16-01-2008, 08:39
Ciao a tutti :D

sto impazzendo

vi spiego:
invio una mail html tramite php ad una lista di circa 300 persone.

Su mac la leggo bene ma il cliente da PC asserisce che gli arriva una mail bianca con un tasto da premere che poi apre la mail, o che gli arriva proprio come allegato (il cliente purtroppo non è molto ferrato e quindi non ho capito bene).

in effetti a volte fa una cosa strana anche a me con gmail ovvero mi dà la mail bianca e poi "mostra testo tra virgolette" e mi apre finalmente tutto.


secondo voi....come si possono controllare dalla composizione della mail questo strani fenomeni

di seguito il codice che uso:

for($i=0;$i<$numero_iscritti;$i++){
while($dati=mysql_fetch_array($risult)){

$messaggio="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\">
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<title>titolo</title>
</head>
<body>
contenuto
</body></html>
";

$intestazioni = "From: $nome_sito<$mail_sito>\n";
$intestazioni .= "Reply-To: <$mail_sito>\n";
$intestazioni .= "MIME-Version: 1.0\n";
$intestazioni .= "X-Sender: $nome_sito<$mail_sito>\n";
$intestazioni .= "X-Mailer: PHP4\n"; //mailer
$intestazioni .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$intestazioni .= "Return-Path: <$mail_sito>\n";
$intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\" Content-Transfer-Encoding: 7bit";


$ok=0;
$ko=0;
if(@mail($dati[email],$_GET[oggetto],$messaggio,$intestazioni)){
$ok++;
}else{
$ko++;
}

}//fine while
}//fine for

vi attendo numerosi :sofico:

kk3z
16-01-2008, 09:39
Ti sei dimenticato un \n qui?

$intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\" Content-Transfer-Encoding: 7bit";

zUmBo!
16-01-2008, 09:44
Ti sei dimenticato un \n qui?

$intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\" Content-Transfer-Encoding: 7bit";


intendi prima di Content-Transfer-Encoding?

dici che possa essere questo a causare conflitti?

in realtà ho appena provato a togliere Content-Transfer-Encoding: 7bit e non dà più problemi.....ma credevo che il conflitto fosse proprio per quell'header....dici che invece sia l' \n? è davvero così importante?:eek:

kk3z
16-01-2008, 09:55
La riga dovrebbe essere così:

$intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\" Content-Transfer-Encoding: 7bit\n";

cioè con la \n in fondo, perchè gli header devono essere separati dal messaggio da una riga vuota:
[headers]

[message]

QUIT

zUmBo!
16-01-2008, 09:59
La riga dovrebbe essere così:

$intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\" Content-Transfer-Encoding: 7bit\n";

cioè con la \n in fondo, perchè gli header devono essere separati dal messaggio da una riga vuota:
[headers]

[message]

QUIT

quindi alla fine la \n fra gli headers è messa giusto per ordine ma basterebbe il punto e virgola, mentre la \n alla fine degli headers è fondamentale per un corretto funzionamento, giusto?

Grazie mille :D

cionci
16-01-2008, 10:38
Thread chiuso
|
V