Configuración de PHP Mailer con Office 365
Anuncio:
PHP Mailer es una librería de PHP para enviar emails.
En esta ocasión veremos de donde descargarlo, como usarlo y su configuración para Office 365.
Podemos descargar PHP Mailer desde el sitio web del proyecto PHPMailer en Sourceforge.net. Siempre es bueno tener la última versión.
Una vez descargado, lo único que tenemos que hacer es descomprimirlo e incluirlo en el directorio de nuestro proyecto.
Para incluirlo en nuestro archivo PHP lo haremos con, por ejemplo:
require_once('./php-mailer/class.phpmailer.php');
require_once("./php-mailer/class.smtp.php");
Una vez incluido ya podremos usarlo, y lo haremos de la siguiente manera
// Creación de la instancia
$mailWeb = new PHPMailer();
// Seteo del uso
$mailWeb->IsSMTP(); // Uso SMTP
// Seteo de la seguridad
$mailWeb->SMTPSecure = 'tls';
// Host
$mailWeb->Host = "smtp-mail.outlook.com";
// Degug. Valores 1 -> errores y mensajes // 2 solo mensajes // 0 no informa nada
$mailWeb->SMTPDebug = 0;
// Autenticación
$mailWeb->SMTPAuth = true;
// Puerto
$mailWeb->Port = 587;
// Usuario
$mailWeb->Username = "cuenta@dominio.com";
// Contraseña
$mailWeb->Password = "micontraseña";
// Quien envia
$mailWeb->SetFrom("cuenta@dominio.com", "Nombres");
// A quien se responderá
$mailWeb->AddReplyTo("cuenta@dominio.com", "Nombres");
// Asunto del email
$mailWeb->Subject = "Asunto";
// En caso de que la vista HTML no esté activida. Esto ya es muy poco probable
$mailWeb->AltBody = "Para ver correctamente este mensaje use la vista de HTML";
// El cuerpo del mensaje.
$mailWeb->MsgHTML($mail);
// Dirección del destinatario
$mailWeb->AddAddress("direccion_destino@dominio.com");
// Enviar el correo
$mailWeb->Send();
Tenemos que tener en cuenta, para Office 365, que la dirección con la que nos logeamos debe ser la misma que envía el correo. Caso contrario nos dará un error.
La variable $mail es el cuerpo del correo y podemos usar HTML para esto. Ejemplo
$mail = "< p > < h1 >Mi correo< / h1 >Este es mi correo de prueba< / p>";
Y con esto ya tenemos nuestro código para envíar emails con nuestra cuenta de Office 365.
Ultimamente, este servicio lo están ofreciendo bastante los proveedores de hosting compartido entre otros.
Esperamos que os sea de utilidad
10 comentarios
buenas tarde en wamp me funciono perfectamnte, pero cuando lo subo al hosting, me da error de conexion, debo hacer algo del lado del hosting?
Sale este error
stream_socket_client(): unable to connect to smtp.office365.com:587 (Connection timed out)
gracias
Pudiste solucionar el problema Luis Fernando Rojas???
Hola Luis, En principio no se porqué puede ser sin más información. Puedes activar la directiva $mailWeb->SMTPDebug y ponerlo a 1 para que te muestre los errores. Así tendrás una idea de que puede estar pasando. Saludos
de donde saco el usuario y contraseña?
Hola, son los datos de acceso del email que desees usar.
hermano gracias por el post… me salvo la vida… Gracias!!!!
hola, exclente post. como puedo enviar un correo sin proporcionar la contraseña de esa cuenta?
Hola Genaro, Si el servidor de correo está bien configurado no podemos hacer eso. En ocasiones se configura para que otra máquina, por ejemplo nuestro servidor web, pueda enviar correo sin hacer login, pero para esto lo lógico es que los dos servidores estén bajo nuestro control y en ese caso lo podríamos hacer usando la función mail() de PHP.
Seguí tu ejemplo y funciona de maravilla… el problema es que envía los correos dos veces.. que crees que pueda ser?
Hola, pues en principio no debería enviar repetido mira solo tienes la dirección de destino una vez no? Revisa en el copia oculta o en copia