Configure PHPMailer with hotmail

1

I can not configure my email in PHPMailer , my code looks 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?

    
asked by anonymous 14.07.2015 / 16:26

3 answers

3

1 ° Make sure the php openssl module is enabled, phpmailer needs it

2 If it's Gmail, Hotmail, Yahoo use port 587.

Example of a My Service that uses hotmail:

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!";
}
    
14.07.2015 / 16:39
1

It needs to be configured as follows:

Link to download Link

NOTE: You need to release port 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;
            }
        }
    
14.07.2015 / 16:28
0

I was testing this authentication on the serverHost server that was on the client side, I tested the same structure on the locaWeb server that worked normally, the problem was hosting networkHost , which was with some service block. I got in touch with the support of the networkHost, they helped me to configure with the own email that the client has of the lodging.

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

    
14.07.2015 / 22:50