Configurando PHPMailer com Office365 SMTP

Estou tentando configurar o PHPMailer para que um de nossos clientes possa receber os e-mails gerados automaticamente provenientes de sua própria conta. Acordei na sua conta do Office 365 e descobri que as configurações necessárias para PHPMailer são:

Host: smtp.office365.com Port: 587 Auth: tls 

Eu apliquei essas configurações para PHPMailer, no entanto nenhum email é enviado (a function que eu chamo funciona bem para nosso próprio e-mail, que é enviado de um servidor externo (não o servidor que serve as páginas da web)).

 "host" => "smtp.office365.com", "port" => 587, "auth" => true, "secure" => "tls", "username" => "clientemail@office365.com", "password" => "clientpass", "to" => "myemail", "from" => "clientemail@office365.com", "fromname" => "clientname", "subject" => $subject, "body" => $body, "altbody" => $body, "message" => "", "debug" => false 

Alguém sabe quais configurações são necessárias para que o PHPMailer possa enviar via smtp.office365.com?

O código do @ nitin não estava funcionando para mim, pois faltava ‘tls’ no parâmetro SMTPSecure.

Aqui está uma versão funcional. Eu também adicionei duas linhas comentadas, que você pode usar no caso de algo não funcionar.

 isSMTP(); $mail->Host = 'smtp.office365.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = 'somebody@somewhere.com'; $mail->Password = 'YourPassword'; $mail->SetFrom('somebody@somewhere.com', 'FromEmail'); $mail->addAddress('recipient@domain.com', 'ToEmail'); //$mail->SMTPDebug = 3; //$mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; //$mail->Debugoutput = 'echo'; $mail->IsHTML(true); $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body in bold!'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } 

Tente isso, ele funciona bem para mim, eu tenho usado isso por tanto tempo

 $mail = new PHPMailer(true); $mail->Host = "smtp.office365.com"; $mail->Port = 587; $mail->SMTPSecure = ''; $mail->SMTPAuth = true; $mail->Username = "email"; $mail->Password = "password"; $mail->SetFrom('email', 'Name'); $mail->addReplyTo('email', 'Name'); $mail->SMTPDebug = 2; $mail->IsHTML(true); $mail->MsgHTML($message); $mail->Send(); 

Eu tive o mesmo problema quando nos mudamos do Gmail para o Office365.

Você DEVE configurar primeiro um conector (seja um relé SMTP aberto ou um envio de cliente). Leia isso e isso lhe dirá tudo o que você precisa saber sobre permitir que o Office365 envie o email:

https://technet.microsoft.com/en-us/library/dn554323.aspx