mail

(PHP 3, PHP 4 )

mail -- Envia email

Descrição

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

mail() automaticamente envia a mensagem especificada em message para o destinatário especificado em to. Destinatários múltiplos podem podem ser especificados colocando uma vírgula entre cada endereço em to. Email com anexos e tipos de conteúdo especiais podem ser enviados usando esta função. Esta é completada via MIME-encoding- para mais informações, veja Zend article or the PEAR Mime Classes.

Os seguintes RFC's pode ser úteis: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, and RFC 2049.

mail() retorna TRUE se o email enviado foi aceito para entrega, do contrário FALSE.

Atenção

A implentação do Windows de mail() difere bastante da implentação Unix. Primeiro, ele não usa um binary local para compor mensagens mas apenas opera com sockets diretos o que significa que uma MTA é necessária prestando atenção num socket de rede (que pode ser ou o localhost ou uma máquina remota). Segundo, os cabeçalhos personalizados como From:, Cc:, Bcc: e Date: são not interpretados por MTA em primeiro lugar, mas são analizados pelo PHP. PHP < 4.3 somente elementos suportados Cc: elemento de cabeçalho (e foi caso-sensitivo). PHP >= 4.3 suporta todos os elementos de cabeçalho suportados e não distante caso-sensitivo.

Exemplo 1. Enviando email.

mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");

Se uma string como quarto argumento é passada, esta string é insrida no fim do cabeçalho. É usado tipicamente para adicionar cabeçalhos extras. Cabeçalhos extras múltiplos são separados com sinal de retorno e novalinha.

Nota: Você deve utilizar \r\n para separar headers, embora alguns agentes de transferência de email Unix mail podem trabalhar com uma simples linha somente (\n).

Exemplo 2. Enviando email com cabeçalhos extras.

mail("nobody@example.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME\r\n"
    ."Reply-To: webmaster@$SERVER_NAME\r\n"
    ."X-Mailer: PHP/" . phpversion());

O parâmetro additional_parameters pode ser usado para passar parâmetros adicionais para o programa configurado para usar quando enviar email usando a definição de configuração sendmail_path. Por exemplo, isto pode ser usado para definir o endereço do envelope remetente quando usar sendmail. Você pode precisar adicionar o usuário que seu servidor web executa como para sua configuração de sendmail para evitar que um cabeçalho 'X-Warning' seja adicionado á mensagem quando você define o envelope remetente usando este método.

Exemplo 3. Enviando email com cabeçalhos extras e definindo um parâmetro de uma linha de comando adicional.

mail("nobody@example.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");

Nota: O quinto parâmetro foi adicionado no PHP 4.0.5.

Você pode utilizar strings simples utilizando técnicas para construir mensagens complexas.

Exemplo 4. Enviando email complexo.

/* recipients */
$to  = "Mary <mary@example.com>" . ", " ; //note the comma
$to .= "Kelly <kelly@example.com>";

/* subject */
$subject = "Birthday Reminders for August";

/* message */
$message = '
<html>
<head>
 <title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
 <tr>
  <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
 </tr>
 <tr>
  <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
 </tr>
 <tr>
  <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
 </tr>
</table>
</body>
</html>
';

/* To send HTML mail, you can set the Content-type header. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);

Nota: Certifique-se que você não tem nenhum caractere novalinha em to ou subject, ou o email não será enviado corretamente.