Hoy os dejo un Script sencillito para hacer uso de la librería de PHP Mailer con una cuenta de Office 365. Si os preguntabáis cómo usar PHP Mailer con Office 365, aquí tenéis este pequeño script.

Debemos tener varios parametros del mensaje almacenados en variables. Que hemos podido recoger de otro script, de un formulario, etcétera.

<?php
$para = "destinatario@correo.es";
$asunto = "Mensaje de prueba";
$mensaje = "Esto es un mesaje de prueba.";
?>

Y luego ya procederemos a emplear la estructura típica de envío con PHP mailer, pero con modificaiones orientadas al uso con Office 365 y Exchange

<?php
$mail = new PHPMailer(true);
$mail->IsSMTP(); // Le indicamos a la clase que usaremos SMTP
$mail->Host = "smtp.office365.com";
$mail->Port = 587;
$mail->SMTPSecure = "tls";
$mail->SMTPAuth = true;
// Tu usuario de correo y contraseña
$mail->Username = "correo@electronico.es";
$mail->Password = "contraseña";
// Envío $mail->From = "correo@electronico.es"; // Email de origen
$mail->FromName = "Tu nombre"; // Nombre del que envia
$mail->AddAddress($para); // Email de destinos
$mail->addReplyTo("correo@electronico.es");
$mail->SMTPDebug = 2;
// Mensaje $mail->WordWrap = 50; // Máxima longitud de las líneas
$mail->IsHTML(true); // Habilitamos el uso de HTML
$mail->Subject = $asunto;
$mail->Body = $mensaje;
?>

Otra versión: En respuesta a Iván

<?php
$para = "destinatario@correo.es";
$asunto = "Mensaje de prueba";
$mensaje = "Esto es un <b>mesaje de prueba.</b>";
$mensaje_nohtml = "Esto es un mesaje de prueba. Para correos que no soporten HTML";


require 'vendor/phpmailer/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer(true);
$mail->isSMTP(); Le indicamos a la clase que usaremos SMTP
$mail->Host = 'smtp.office365.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
// Tu usuario de correo y contraseña
$mail->Username = "correo@electronico.es";
$mail->Password = "contraseña";

//Envío
$mail->SetFrom('correo@electronico.es', 'Tu Nombre');
$mail->addAddress($para, 'Nombre destinatario');

//Mensaje
$mail->WordWrap = 50; // Máxima longitud de las líneas
$mail->IsHTML(true);
$mail->Subject = $asunto;
$mail->Body = $mensaje;
$mail->AltBody = $mensaje_nohtml;

//Comprobaciones
if(!$mail->send()) {
echo 'El mensaje no se ha podido enviar.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'El mensaje se ha enviado';
}
?>

Bueno, pues eso es todo. Nuevamente espero que haya sido de vuestra utilidad y que si hay algun fallo o alguna crítica no dudéis en escribir un comentario.

Nos vemos en otro post…