PHPMailer

Actualitzat el 2026-10-27 11:01:44 356 visites

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:

  1. Descarrega PHPMailer des de GitHub: Descarregar PHPMailer. Fes clic a 'Code” → “Download ZIP”.
  2. Descomprime el fitxer descarregat PHPMailer-master.zip.
  3. Renomena la carpeta PHPMailer-master a PHPMailer.
  4. 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

  1. Modifica les dades SMTP (servidor, usuari i contrasenya).
  2. Configura el remitent i el destinatari.
  3. Puja la carpeta PHPMailer i el fitxer ejemplo.php a l'arrel del situ (per exemple /datos/web).
  4. 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.