PHPMailer es una librería popular para el envío de correos electrónicos, que algunos programadores usan como alternativa al uso de la función mail(). No obstante para el envío de correos sencillos la función mail() es lo más sencillo. La función mail() requiere un servidor local de correo para que envíe los correos, mientras que PHPMailer puede usar un servidor no local (SMTP) por ejemplo gmail si tienes autenticación (usuario y password) para acceder a él.
Ejemplo de envío de correo desde servidor local usando phpMailer:
<?phprequire_once "vendor/autoload.php";//PHPMailer Object$mail = new PHPMailer;//From email address and name$mail->From = "from@yourdomain.com";$mail->FromName = "Full Name";//To address and name$mail->addAddress("recepient1@example.com", "Recepient Name");$mail->addAddress("recepient1@example.com"); //Recipient name is optional//Address to which recipient will reply$mail->addReplyTo("reply@yourdomain.com", "Reply");//CC and BCC$mail->addCC("cc@example.com");$mail->addBCC("bcc@example.com");//Send HTML or Plain Text email$mail->isHTML(true);$mail->Subject = "Subject Text";$mail->Body = "<i>Mail body in HTML</i>";$mail->AltBody = "This is the plain text version of the email content";if(!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo;} else { echo "Message has been sent successfully";}
Ejemplo de envío de correo desde servidor smtp (por ejemplo gmail):
<?phprequire_once "vendor/autoload.php";$mail = new PHPMailer;//Enable SMTP debugging. $mail->SMTPDebug = 3; //Set PHPMailer to use SMTP.$mail->isSMTP(); //Set SMTP host name $mail->Host = "smtp.gmail.com";//Set this to true if SMTP host requires authentication to send email$mail->SMTPAuth = true; //Provide username and password $mail->Username = "name@gmail.com"; $mail->Password = "super_secret_password"; //If SMTP requires TLS encryption then set it$mail->SMTPSecure = "tls"; //Set TCP port to connect to $mail->Port = 587; $mail->From = "name@gmail.com";$mail->FromName = "Full Name";$mail->addAddress("name@example.com", "Recepient Name");$mail->isHTML(true);$mail->Subject = "Subject Text";$mail->Body = "<i>Mail body in HTML</i>";$mail->AltBody = "This is the plain text version of the email content";if(!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo;} else { echo "Message has been sent successfully";}
Salu2