informatica:programacion:php:phpmailer
Tabla de Contenidos
PHPMailer
Clase para envío de correos electrónicos en PHP.
- Repositorio oficial (GitHub)
Las notas aquí recogidas están centradas en la versión 5.2 de este proyecto.
Características
Instalación
Para versiones entre la 5 y la 7 de PHP, hay que usar la versión 5.2 de PHPMailer.
Depuración
Para revisar errores o verificar el comportamiento, podemos establecer la propiedad SMTPDebug a alguno de los siguientes valores:
0: deshabilita la depuración (es el valor por defecto)1: mensajes de salida enviados por el cliente.2: igual que el1, pero añade las respuestas del servidor (esto es lo más útil cuando estamos depurando)3: igual que el2, pero añade más información sobre la conexión inicial.4: igual que el3, pero añade información a bajo nivel.
Ejemplo
<?php //Import PHPMailer classes into the global namespace //These must be at the top of your script, not inside a function use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; //Load Composer's autoloader require 'vendor/autoload.php'; //Create an instance; passing `true` enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output $mail->isSMTP(); //Send using SMTP $mail->Host = 'smtp.example.com'; //Set the SMTP server to send through $mail->SMTPAuth = true; //Enable SMTP authentication $mail->Username = 'user@example.com'; //SMTP username $mail->Password = 'secret'; //SMTP password $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` //Recipients $mail->setFrom('from@example.com', 'Mailer'); $mail->addAddress('joe@example.net', 'Joe User'); //Add a recipient $mail->addAddress('ellen@example.com'); //Name is optional $mail->addReplyTo('info@example.com', 'Information'); $mail->addCC('cc@example.com'); $mail->addBCC('bcc@example.com'); //Attachments $mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; }
Vaciar o eliminar destinatarios
Si, por lo que sea, queremos asegurarnos de que no hay establecido ningún destinatario (ni en CC o CO):
$mail->clearAllRecipients( );
informatica/programacion/php/phpmailer.txt · Última modificación: por tempwin
