Domanda

Sto usando una funzione di posta per inviare html a un indirizzo e-mail, ma il nome e l'indirizzo e-mail non vengono visualizzati. Questo è il mio codice:

$name = $_POST['name'];
$mailTo = 'name@email.com';
$subject = 'Message from ' . $_POST['name'];
$message = 
            '<html>
            <head>
            <title>HTML email</title>
            </head>
            <body>
            <p><b>Name:</b> ' . $_POST['name'] . '</p>
            <p><b>Email:</b> ' . $_POST['email'] . '</p>
            <p><b>Message:</b> ' . $_POST['mainmessage'] . '</p>
            </body>
            </html>';

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Postmaster <some@body.com>';

mail($mailTo, $subject, $message, $headers);

Mi aspetto che l'e-mail venga visualizzata da Postmaster all'indirizzo e-mail some@body.com, ma si presenta come proveniente da ideapale@box486.bluehost.com, che è il mio provider di hosting.

Cosa non ho impostato correttamente?

È stato utile?

Soluzione

Chris, prova ad aggiungere \r\n dopo <some@body.com>. Ho scoperto che php può essere molto esigente quando si parla con i server di posta.

Modifica: solo per aiutare un po 'di più, ho questo (quasi esattamente quello che hai) in uno dei miei script di lavoro:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: '.$to . "\r\n";
$headers .= 'From: ' .$from. "\r\n";

... dove $from = $fromname.' <'.$fromemail.'>'; e $ to è solo un indirizzo email.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top