Photo by Kenn W. Kiser – morgueFile.com

Forse non sarà un caso frequente, ma può capitare di trovarsi a installare WordPress su un hosting che non permette di utilizzare la funzione Mail() di PHP (o preferire comunque non usarla sul web server); questo rende impossibile tutte le azioni che comportano l’invio di email in automatico da parte del sito web (per la registrazione, il recupero della password eccetera).

Se non si vogliono installare plugin aggiuntivi è possibile usare un sistema alternativo cambiando qualche riga di un paio di file di WordPress per fare in modo che phpmailer utilizzi una casella email e un server SMTP a cui possiamo accedere: apriamo il nostro editor e andiamo a modificare il file /wp-includes/pluggable.php .

Circa alla riga 394 troviamo:


$phpmailer->isMail();

che va modificata in:

$phpmailer->isSMTP();

Così facendo facciamo sostituiamo la funzione Mail() del PHP con il server SMTP, di cui dobbiamo ancora impostare i parametri. Per fare questo, apriamo il file /wp-includes/class-phpmailer.php e configuriamo al suo interno l’SMTP e la casella che intendiamo usare per l’invio di posta.

Circa alla riga 132 impostiamo il metodo di spedizione con SMTP modificando il codice da:


public $Mailer = ' ';

a

public $Mailer = 'SMTP';

Dalla riga 169 in poi troviamo dove aggiungere le impostazioni per l’accesso alla casella di posta e procediamo, per le seguenti variabili, alla stessa maniera vista sopra:

public $Host = 'mioSMTP.miodominio.xx';
public $SMTPAuth = true;
public $Username = 'casella@ miodominio.xx';
public $Password = "password";

Adesso basta sostituire i file così modificati agli originali sul server e il nostro sito potrà mandare email agli utenti ogni volta che sarà necessario.

Ho usato questo sistema su WordPress 3.3.x: su versioni precedenti la procedura dovrebbe essere abbastanza simile. Fare sempre un backup dei file originali, ad ogni buon conto…