Skip to main content

Enviar email de um script PHP usando autenticação SMTP

Enviar e-mail pelo formulário usando PHP (Abril 2025)

Enviar e-mail pelo formulário usando PHP (Abril 2025)
Anonim

Enviar um email a partir de um script PHP é simples, rápido e fácil … se funcionar!

Parte do que faz o PHP enviar() função tão simples é a sua falta de flexibilidade, mas um problema com isso é que o PHP estoque enviar() geralmente não permite que você use o servidor SMTP de sua escolha e não oferece suporte à autenticação SMTP.

Felizmente, superar as deficiências internas do PHP não é difícil. Para a maioria dos usuários de e-mail, o pacote gratuito PEAR Mail oferece todo o poder e flexibilidade necessários, e é autenticado com o servidor de e-mail de saída desejado. Para maior segurança, as conexões SSL criptografadas também são suportadas para o envio de mensagens usando o PEAR Mail.

Como enviar e-mail de um script PHP com autenticação SMTP

Para começar, instale o pacote PEAR Mail. Normalmente, isso já terá sido feito para você com o PHP 4 e posterior, mas se você não tiver certeza se já o possui, vá em frente e instale-o.

Copie esse código:

require_once 'Mail.php'; $from = 'Sandra Sender >'; $to = 'Ramona Recipient '; $subject = 'Hi!'; $body = 'Hi, How are you?'; $host = 'mail.example.com'; $username = 'smtp_username'; $password = 'smtp_password'; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('

' . $mail->getMessage() . '

'); } else { echo('

Message successfully sent!

'); }

Localize todo o texto em negrito em nosso exemplo e altere essas áreas do script para o que for relevante para você. Essas são as únicas áreas que você devo mude para que o script PHP funcione, mas também certifique-se de ajustar o assunto e o texto do corpo também.

  • de: O endereço de email do qual você deseja que a mensagem seja enviada
  • para: O endereço de e-mail e o nome do destinatário
  • hospedeiro: O nome do servidor SMTP de saída
  • username: O nome de usuário SMTP (normalmente o mesmo que o nome de usuário usado para recuperar emails)
  • senha: A senha para autenticação SMTP

Nota: O exemplo acima é de um script PHP que envia um email com autenticação SMTP, mas sem Criptografia SSL. Se você quiser criptografia também, use este script, novamente, trocando o texto em negrito com suas informações.

require_once 'Mail.php'; $from = 'Sandra Sender >'; $to = 'Ramona Recipient >'; $subject = 'Hi!'; $body = 'Hi, How are you?'; $host = 'ssl://mail.example.com'; $port = '465'; $username = 'smtp_username'; $password = 'smtp_password'; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo('

' . $mail->getMessage() . '

'); } else { echo('

Message successfully sent!

'); }