Configure Phpmailer with Hotmail

Asked

Viewed 6,401 times

3

I’m not being able to set up my email on PHPMailer, my code is like this:

$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->CharSet = 'UTF-8';
$mail->Host = "smtp.live.com"; // Endereço do servidor SMTP (caso queira utilizar a autenticação, utilize o host smtp.seudomínio.com.br)
$mail->SMTPAuth = true; // Usar autenticação SMTP (obrigatório para smtp.seudomínio.com.br)
$mail->Username = '*********@hotmail.com'; // Usuário do servidor SMTP (endereço de email)
$mail->Password = '*********'; // Senha do servidor SMTP (senha do email usado)
$mail->Port     = 465; // SMTP port

What am I missing?

3 answers

4

1° Check that the openssl php module is enabled, phpmailer needs it

2° If Gmail,Hotmail,Yahoo use port 587.

Example of a Service I use:

date_default_timezone_set('Etc/UTC');
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.live.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "senhaAqui";
$mail->setFrom('[email protected]', 'Nome');
$mail->addReplyTo('[email protected]', 'Reply');
$mail->addAddress('[email protected]', 'Exemplo2');
$mail->Subject = 'Titulo do Texto';
$mail->Body = 'Mensagem de texto';

if (!$mail->send()) {
   echo "Mailer Error: " . $mail->ErrorInfo;
} else {
   echo "Message sent!";
}
  • Put this class require 'Phpmailerautoload.php';

  • It’s on the github project : https://github.com/PHPMailer/PHPMailer

1

It must be configured as follows:

Link to download Link

OBS: It is necessary to release door 587

/**
        *String que armazena o email de onde partirá os emails (remetente).
        *@var string
        */
        const GUSER = 'email';

        /**
        *String que armazena a senha do email de onde partirá os emails (remetente).
        *@var string
        */
        const GPWD = 'senha';

        /**
        *String que armazena o email para qual as mensagens serão enviadas (destinatário).
        *@var string
        */
        const GSEND = 'teste';


       static function contactUsEmail(){

            $emailRemetente = $_POST['email'];
            $name = $_POST['name'];
            $subject = $_POST['subject'];
            $mensagem = $_POST["message"];
            $corpoMensagem = '<b>CONCTACT US EMAIL</b>'.'<br /><b>Email Remetente: </b>'.$emailRemetente.
            '<br /><b>Nome:</b>'.$name.'<br /><b>Assunto:</b>'.$subject.'<br /><b>Mensagem:</b>'.$mensagem;

            $sendResult = SendEmail::smtpMailer(SendEmail::GSEND, SendEmail::GUSER, $name, $subject, $corpoMensagem);

            if($sendResult === true){
                 echo 'Mensagem Enviada com Sucesso';
            }else{
                echo $sendResult;
            }
        }

        function smtpMailer($destinatario, $remetente, $nomeRemetente, $assunto, $corpo){

            /*
            *Objeto que realizará a composição do email com os dados passados como parametros, 
            *armazenara as configurações do servidor SMTP utilizado e todas as outras configurações 
            *e realizará o envio do email.
            *@var PHPMailer object
            */
            $mail = new PHPMailer();

            /**
            *Define o charset do email a ser enviado.
            */
            $mail->CharSet = 'UTF-8';

            /**
            *Ativa SMTP para uso.
            */
            $mail->IsSMTP();

            /**
            *Não exibirá erros e mensagens, outras configurações possiveis: 
            *Debugar: 1 = erros e mensagens, 2 = mensagens apenas.
            */
            $mail->SMTPDebug = 0;

            /**
            *Ativa a autenticação.
            */
            $mail->SMTPAuth = true;

            /**
            *Protocolo utilizado, o gmail (servidor utilizado) requere o uso de tls.
            */
            $mail->SMTPSecure = 'tls';

            /**
            *SMTP utilizado
            */
            $mail->Host = 'smtp.gmail.com';

            /**
            *Porta utilizado para envio de mensagens (ela deverá estar aberta em seu servidor).
            */
            $mail->Port = 587;

            /**
            *Login do usuário utilizado para envio do email (no caso usuário comum do gmail).
            */
            $mail->Username = SendEmail::GUSER;

            /**
            *Senha do login de usuário utilizado para envio do email.
            */
            $mail->Password = SendEmail::GPWD;

            /**
            *Identificação do remetente do email (usuário de email utilizado para envio do 
            *email pelo sistema (logo de propriedade do sistema) e o nome do usuário remetente 
            *(informado na hora da criação do email)) do email.
            */
            $mail->SetFrom($remetente, $nomeRemetente);

            /**
            *Assunto do email.
            */
            $mail->Subject = $assunto;

            /**
            *Corpo do email.
            */
            $mail->Body = $corpo;

            /**
            *Email destinatário do email (de propriedade do sistema).
            */
            $mail->AddAddress($destinatario);

            /**
            *Seta o email como HTML (por padrão ele é text/plain).
            */
            $mail->IsHTML(true);

            $sendResult = $mail->Send();

            if(!$sendResult){
                return "<b>Informações do erro:</b> " . $mail->ErrorInfo;
            }else{
                return true;
            }
        }

0

I was testing this authentication on the server redeHost which was in the client’s, I tested the same structure on the Locaweb that worked normally, the problem was the hosting of redeHost, I was with some service block. I contacted the network support, they helped me to configure with the own email that the client has of the hosting.

End of story the problem was SMTP, replace from Emal.dominio.com.br to smtpexc01.redehost.com.br

Browser other questions tagged

You are not signed in. Login or sign up in order to post.