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

Índice:

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

O que saber

  • opções de classe PHP: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Observe o nome do servidor de correio > verifique se o PEAR Mail está instalado > modifique o arquivo PHP usando os exemplos fornecidos.

Este artigo explica como usar a autenticação SMTP para enviar e-mail com a função PHP mail() no PEAR Mail.

Enviando e-mail com a função PHP Mail

Quando você usa a função PHP mail(), você acaba enviando e-mail diretamente do seu servidor web ao invés do seu servidor de correio. Se você tiver um servidor de e-mail por meio de seu host da Web, ou mesmo um servidor de e-mail com um host diferente, geralmente é melhor enviar e-mails por meio dele.

O problema é que a função mail() do PHP não fornece nenhuma maneira integrada de enviar mensagens via SMTP. Se você quiser abrir essa funcionalidade, precisará instalar uma classe PHP adicional.

Aqui estão algumas opções que funcionam:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Mostraremos como usar o PEAR Mail, mas você pode usar qualquer classe que suporte SMTP.

Image
Image

Se seu host já possui uma ou mais dessas classes instaladas, provavelmente há tutoriais relacionados à sua situação. Se sim, vá em frente e use a classe à qual você tem acesso.

Use este método apenas se estiver usando PHP para criar seus próprios formulários de correio personalizados. Se você estiver usando um sistema de gerenciamento de conteúdo (CMS) como o WordPress, procure um plug-in ou funcionalidade integrada para enviar e-mails via SMTP, em vez de tentar criar o seu próprio.

Como usar o PEAR para enviar mensagens via SMTP

  1. Certifique-se de que seu domínio esteja apontado para os registros do Mail Exchange (MX) do host do servidor de e-mail e anote o nome do servidor de e-mail. Por exemplo, pode ser mail.seudominio.net ou smtp.seudominio.net.
  2. Verifique se o PEAR Mail já está instalado em seu servidor de e-mail.
  3. Se o PEAR Mail não estiver instalado, consulte seu host de webmail para obter instruções específicas para instalá-lo.
  4. Uma vez instalado o PEAR Mail, modifique um dos exemplos de arquivos PHP nas seções a seguir para atender às suas necessidades.

Exemplo de PEAR Mail PHP Script para SMTP Mail

Você pode criar seu próprio script do zero se quiser, ou modificar o exemplo a seguir ao seu gosto. Certifique-se de inserir o nome do seu servidor de webmail na variável host e use suas informações de login para seu host de webmail nos campos de nome de usuário e senha.

require_once "Mail.php";

$from="Nome do remetente";

$to="Nome do destinatário";

$subject=" Assunto aqui: ";

$body=" qualquer mensagem que você quiser ";

$host="yourmailhost.com";

$username="seu nome de usuário ou email"; $senha="sua senha";

$headers=array ('De'=> $de, 'Para'=> $para, 'Assunto'=> $assunto);

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

Mensagem enviada com sucesso!

);}

Exemplo de script PHP PEAR Mail para autenticação SMTP e criptografia SSL

Se você quiser usar autenticação SMTP e criptografia SSL, você terá que fazer algumas modificações no exemplo anterior. Você precisará apontar a variável host para seu servidor de email SSL e também especificar um número de porta como 25, 465, 587, 2525 ou 8025. Entre em contato com seu host de email para obter mais informações se não conseguir descobrir qual porta use.

require_once "Mail.php";

$from="Nome do remetente";

$to="Nome do destinatário";

$subject=" Assunto aqui: ";

$body=" qualquer mensagem que você quiser ";

$host="ssl://yourmailhost.com";

$port="587"; $username="seu nome de usuário ou email";

$password="sua senha";

$headers=array ('From'=> $from, ' To'=> $to, 'Assunto'=> $assunto);

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

Mensagem enviada com sucesso!

);}

Recomendado: