correio php

Resumo : neste tutorial você aprenderá como enviar e-mail usando a mail()função PHP.

Introdução à função mail() do PHP

Para enviar e-mail, você usa a mail()função.

Em sistemas Linux ou Unix, você pode configurar a mail()função para usar o programa sednmailou Qmailpara enviar mensagens.

No Windows, você pode instalar sendmaile definir o arquivo sendmail_pathin php.inipara apontar para o arquivo executável.

Porém, é mais conveniente configurar o servidor SMTP com uma porta e sendmail_fromno php.iniarquivo no Windows assim:

[mail function]
SMTP=smtp.phptutorial.net
smtp_port=25
sendmail_from=contact@phptutorial.netLinguagem de código:  PHP  ( php )

Se o servidor SMTP exigir autenticação, você poderá adicionar as seguintes linhas para a conta ser autenticada:

auth_username=smtp_user
auth_password=smpt_passwordLinguagem de código:  PHP  ( php )

Assim que a configuração estiver pronta, você precisa reiniciar o servidor web.

O seguinte ilustra a sintaxe da mail()função:

mail(
    string $to,
    string $subject,
    string $message,
    array|string $additional_headers = [],
    string $additional_params = ""
): boolLinguagem de código:  PHP  ( php )

A mail()função possui os seguintes parâmetros:

  • $toé o destinatário do e-mail
  • $subjecté o assunto do e-mail.
  • $messageé a mensagem de e-mail. Pode ser texto simples ou HTML. Se $messagefor texto simples, você usa um CRLF (\r\n) para separar as linhas. E cada linha não deve ultrapassar 70 caracteres.
  • $additional_headersé uma string ou array inserido no cabeçalho do email. Inclui from, cc, bcc… Se o cabeçalho vier de uma fonte não confiável, você deve sempre higienizá-lo para fins de segurança.
  • $additional_paramspermite que você passe sinalizadores adicionais como opções de linha de comando para o sendmailprograma.

A mail()função retorna truese o e-mail foi aceito para entrega. Isso não significa que o e-mail chegou com sucesso ao destinatário pretendido. Se ocorreu um erro, a mail()função retorna false.

Exemplos de funções PHP mail()

Vejamos alguns exemplos de uso da mail()função PHP.

1) Usando a função PHP mail() para enviar um exemplo de e-mail em texto simples

O exemplo a seguir usa a mail()função para enviar um email simples:

<?php

$subject = 'This is a test email';

$message = <<<MSG
    Hi,
    This is a simple email.
    It's sent from PHP.
MSG;

wordwrap($message, 70, "\r\n");

mail('[email protected]', $subject, $message);Linguagem de código:  PHP  ( php )

Neste exemplo, usamos a wordwrap()função para garantir que as linhas da mensagem não excedam 70 caracteres.

2) Usando a função PHP mail() para enviar um email com exemplo de cabeçalhos extras

O exemplo a seguir usa a mail()função para enviar um email com cabeçalhos adicionais como From, Reply-To e X-Mailer:

<?php

$to      = '[email protected]';
$subject = 'This is a test email';
$message = 'Hi there';

$headers[] = 'From: [email protected]';
$headers[] = 'Reply-To: [email protected]';
$headers[] = 'X-Mailer: PHP/' . phpversion();


mail($to, $subject, $message, implode('\r\n', $headers));Linguagem de código:  PHP  ( php )

Se você usa PHP 7.2 ou posterior, você pode passar os cabeçalhos como um array como este:

<?php

$to      = '[email protected]';
$subject = 'This is a test email';
$message = 'Hi there';

$headers = [
    'From' => '[email protected]',
    'Reply-To' => '[email protected]',
    'X-Mailer' => 'PHP/' . phpversion()
];


mail($to, $subject, $message,  $headers);Linguagem de código:  PHP  ( php )

3) Exemplo de uso da função PHP mail() para enviar email em HTML

Para enviar e-mail em HTML, você precisa definir o Content-typecabeçalho assim:

<?php

$to      = '[email protected]';
$subject = 'This is a test email';
$message = '<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Email</title>
</head>

<body>

    <h1>This is HTML mail</h1>

</body>

</html>';


$headers = [
    'MIME-Version' => '1.0',
    'Content-type' => 'text/html; charset=utf8',
    'From' => '[email protected]',
    'Reply-To' => '[email protected]',
    'X-Mailer' => 'PHP/' . phpversion()
];


if (mail($to, $subject, $message,  $headers)) {
    echo 'email was sent.';
} else {
    echo 'An error occurred.';
}Linguagem de código:  PHP  ( php )

Resumo

  • Use a função PHP mail()para enviar uma mensagem de email.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *