Como faço para testar a funcionalidade SMTP do PHP?


Você pode testar as funções SMTP do PHP com os dois exemplos a seguir. O primeiro exemplo é o SMTP padrão, e o segundo é o SMTP com SSL.

Recomendamos a utilização de retransmissão SMTP que exija autenticação. O envio de e-mails por meio de servidores SMTP não autenticados (inclusive a retransmissão a partir do localhost para cloud sites) pode fazer com que a entrega do e-mail atrase ou não aconteça, devido a filtros anti-spam rigorosos.

Envio com SMTP do PHP

Você só vai precisar alterar as seguintes variáveis:

  • $from
  • $to
  • $subject
  • $body
  • $host
  • $username
  • $password

Os valores de host, nome de usuário e senha dependerão do provedor que você está usando para enviar o e-mail. Se você tiver uma conta de e-mail em um site legado ou estiver usando e-mail da Rackspace, o host será "mail.emailsrvr.com" e o nome de usuário será o seu endereço de e-mail. Se estiver usando outro serviço para enviar e-mails, como o Gmail ou Mailgun, você precisa preencher o campo do servidor SMTP deste serviço. As informações do servidor Mailgun podem ser acessadas ​​em seu painel de controle do Mailgun.

<?php
require_once "Mail.php";
 
$from = "Web Master <webmaster@example.com>";
$to = "Nobody <nobody@example.com>";
$subject = "Test email using PHP SMTP\r\n\r\n";
$body = "This is a test email message";
 
$host = "mail.emailsrvr.com";
$username = "webmaster@example.com";
$password = "yourPassword";
 
$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("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Message successfully sent!</p>");
}
?>

Envio com SMTP do PHP com SSL

Você só vai precisar alterar as seguintes variáveis:

  • $from
  • $to
  • $subject
  • $body
  • $host
  • $username
  • $password
 
<?php
require_once "Mail.php";
 
$from = "Web Master <webmaster@example.com>";
$to = "Nobody <nobody@example.com>";
$subject = "Test email using PHP SMTP with SSL\r\n\r\n";
$body = "This is a test email message";
 
$host = "ssl://secure.emailsrvr.com";
$port = "465";
$username = "webmaster@example.com";
$password = "yourPassword";
 
$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("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Message successfully sent!</p>");
}
?>

Observação: Mail.php é um PEAR módulo e está instalado no servidor. Ele está incluído no include_path padrão para PHP. Por isso solicitá-lo aqui funcionará automaticamente, sem que você precise fazer mais nada.

Consulte também



Este conteúdo foi útil?




© 2014 Rackspace US, Inc.

Salvo indicação em contrário, o conteúdo deste site está licenciado sob uma licença não adaptada de Creative Commons Attribution-NonCommercial-NoDerivs 3.0


Ver detalhes da licença e o AVISO LEGAL