Enviar email via servidor SMTP en PHP mediante PHPMailer

Enviar email via servidor SMTP en PHP mediante PHPMailer

@programacion

Enviar un email mediante un script es la característica más utiliza en toda aplicación web que se precie. Basicamente, podemos utilizar la función mail() de PHP para llevar esto a cabo. Al enviar un correo electrónico con la función mail() de PHP, el correo se enviará desde tu servidor web. Sin embargo, esto suele fallar en ocasiones, ocasionando grandes problemas. Con un servidor SMTP puedes solventar esto. Este método es lo más recomendado a la hora de enviar correos electrónicos desde un script de PHP. Cuando envíes un correo electrónico a través de SMTP, el email se enviará desde dicho servidor de correo, en lugar de utilizar el del servidor.

La forma más sencilla de enviar un email en PHP con SMTP es utilizar la librería PHPMailer. PHPMailer te proporciona la opción de enviar correos electrónicos a través de un servidor SMTP en PHP. En este tutorial veremos cómo enviar un email HTML con SMTP en PHP utilizando la librería PHPMailer.

Enviar email HTML

Utiliza isHTML(true) para definir que el correo que vas a enviar está en formato HTML.

<?php
// Include and initialize phpmailer class
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

// SMTP configuration
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = [email protected]';
$mail->Password = '******';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->setFrom([email protected]', 'Programacionnet');
$mail->addReplyTo([email protected]', 'Programacionnet');

// Add a recipient
$mail->addAddress([email protected]');

// Add cc or bcc 
$mail->addCC([email protected]');
$mail->addBCC([email protected]');

// Email subject
$mail->Subject = 'Send Email via SMTP using PHPMailer';

// Set email format to HTML
$mail->isHTML(true);

// Email body content
$mailContent = "<h1>Send HTML Email using SMTP in PHP</h1>
    <p>This is a test email has sent using SMTP mail server with PHPMailer.</p>";
$mail->Body = $mailContent;

// Send email
if(!$mail->send()){
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}else{
    echo 'Message has been sent';
}

Enviar email HTML con adjuntos

Utiliza el método addAttachments() de PHPMailer para añadir adjuntos al correo. Puedes añadir múltiples adjuntos llamando al método addAttachments() múltiples veces.

// Add attachments
$mail->addAttachment('docs/doc_1.pdf');
$mail->addAttachment('docs/doc_2.docs');
$mail->addAttachment('images/image_3.png', 'new-name.png'); //set new name

Enviar email HTML a multiples destinatarios

Puedes llamar al método addAddress() multiples veces para añadir múltiples destinatarios al correo.

// Add multiple recipients
$mail->addAddress([email protected]');
$mail->addAddress([email protected]');

Fuente: codexworld.com

Report Page