PHPMailer
En alguns servidors, la funció de PHP mail() no està disponible. Cada vegada és més habitual que es desactivi com a mesura de seguretat, amb l'objectiu d'evitar problemes com el spam, el mail spoofing o l'ús del servidor com a relé de correu no autoritzat.
En cas que una web allotjada sigui comprometesa per un usuari malintencionado, la desactivació d'aquesta funció ajuda a reduir riscos relacionats amb l'enviament massiu de correus no desitjats.
Si necessites allotjar la teva web juntament amb el servei de correu del teu domini, SWHosting ofereix servidors gestionats mitjançant SWPanel que inclouen aquestes funcionalitats.
La llibreria PHPMailer
La llibreria PHPMailer permet enviar correus electrònics mitjançant una connexió SMTP, en lloc d'utilitzar la funció mail() de PHP.
Això significa que l'enviament de correus es realitza a través d'un servidor SMTP extern o propi, cosa que millora la seguretat, traçabilitat i entregabilitat dels missatges.
La documentació oficial del projecte està disponible a GitHub:
Repositori PHPMailer


Crear compte de correu i obtenir dades de connexió
Per poder enviar correus mitjançant SMTP, és necessari disposar d'un compte de correu creat prèviament i conèixer les seves dades de connexió:
- Servidor SMTP de sortida
- Usuari de correu
- Contrasenya
Manual: Configuració de comptes de correu
Instal·lació de PHPMailer amb Composer
Si el teu projecte ja utilitza Composer, aquesta és la forma més senzilla d'instal·lar-lo.
Afegeix la dependència a composer.json:
phpmailer/phpmailer': '~6.1
O executa directament:
composer require phpmailer/phpmailer
A la documentació oficial de GitHub trobaràs exemples addicionals de configuració.
Instal·lació manual de PHPMailer
Si no utilitzes Composer, pots instal·lar la llibreria manualment:
- Descarrega PHPMailer des de GitHub: Descarregar PHPMailer. Fes clic a 'Code” → “Download ZIP”.
- Descomprime el fitxer descarregat
PHPMailer-master.zip. - Renomena la carpeta
PHPMailer-masteraPHPMailer. - Copia la carpeta dins del teu projecte.
L'estructura ha de quedar així:
/PHPMailer/src/PHPMailer.php
Exemple senzill de configuració
Guarda el següent codi com a ejemplo.php:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$mail = new PHPMailer(true);
try {
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = 'CONFIGURAR_SERVIDOR_SMTP';
$mail->SMTPAuth = true;
$mail->Username = 'CONFIGURAR_USUARIO_SMTP';
$mail->Password = 'CONFIGURAR_CONTRASEÑA_SMTP';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('[email protected]', 'El teu nom');
$mail->addAddress('[email protected]', 'Destinatari');
$mail->isHTML(true);
$mail->Subject = 'Assumpte del correu';
$mail->Body = 'Contingut del correu <b>en HTML</b>';
$mail->AltBody = 'Contingut en text pla';
$mail->send();
echo 'El missatge s'ha enviat';
} catch (Exception $e) {
echo 'Error: {$mail->ErrorInfo}';
}
Passos finals
- Modifica les dades SMTP (servidor, usuari i contrasenya).
- Configura el remitent i el destinatari.
- Puja la carpeta
PHPMaileri el fitxerejemplo.phpa l'arrel del situ (per exemple/datos/web). - Executa al navegador:
http://tudominio.com/ejemplo.php
Si tot és correcte, es mostrarà el procés de depuració i rebràs el correu de prova.
En producció, recorda desactivar el mode debug de PHP i SMTP.
En producció, recordeu desactivar el debug d'errors PHP i SMTP
Exemple per a Wordpress
En entorns amb WordPress, una alternativa més senzilla és utilitzar el plugin: WP Mail SMTP plugin
Manual: Configurar el plugin per a l'enviament de correu (WP Mail SMTP) a WordPress
I recorda que, si necessites allotjar la web i el correu del teu domini, SWHosting pot ajudar-te amb els seus servidors gestionats amb SWPanel.