Pergunta

Eu estou usando uma função de correio para enviar html para um endereço de e-mail, mas a partir nome e endereço de e-mail não estão aparecendo. Este é meu código:

$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);

Espero que o e-mail a mostrar-se como sendo de Postmaster no endereço de e-mail some@body.com, mas está aparecendo como vindo de ideapale@box486.bluehost.com, que é o meu provedor de hospedagem.

O que eu fiz não está configurado corretamente?

Foi útil?

Solução

Chris, tente adicionar a \r\n após a <some@body.com>. Descobri que php pode ser muito exigente quando se fala de servidores de correio.

Editar: apenas para ajudar um pouco mais, eu tenho essa (quase exatamente o que você tem) em um dos meus scripts de trabalho:

$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";

... onde $from = $fromname.' <'.$fromemail.'>'; e $ para é apenas um endereço de e-mail.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top