Wp Mail Smtp – Un plugin con oltre 1 milione di installazioni attive che dovresti smettere di usare SUBITO

, ,

Ci sono diversi motivi per cui si sceglie di usare un servizio di SMTP esterno per l’invio delle email piuttosto che usare le funzioni standard di WordPress (o php) : in primis la maggiore affidabilità, ma anche la possibilità di avere delle statistiche non è affatto male (per non parlare dell’invio di mailing list con servizi esterni).

Cercando un plugin per svolgere il compito, ci si imbatte sicuramente in Wp Mail Smtp: conta oltre 1 milione di installazioni attive ed è consigliato da articoli/tutorial come quelli di SiteGround, Dreamhost e tantissimi altri.

Con questi numeri, uno si fida e lo installa più o meno ad occhi chiusi.

Un errore assai grave, purtroppo, ora vi spiego perchè punto per punto.

Questa è la pagina delle impostazioni del plugin, la parte in cui si inseriscono i parametri per il login (come parametri ho usato smtp.provideracaso.it come host, come indirizzo email indirizzo@email.it e come password passwordacaso)

Impostazioni parametri login per wp mail smtp

Qui, subito notiamo che qualcosa non quadra:

The password is stored in plain text. We highly recommend you setup your password in your WordPress configuration file for improved security; to do this add the lines below to your wp-config.php file.
define( ‘WPMS_ON’, true );
define( ‘WPMS_SMTP_PASS’, ‘your_password’ );

Un messaggio ci avverte che la password è salvata nel database in chiaro, ammenoché non definiamo quelle due costanti nel file wp-config.php.

E già da qui mi viene da chiedere perchè cavolo si lascia la possibilità di salvare la password in chiaro allora, visto che c’è un metodo più sicuro.
Che più sicuro non è manco per il cazzo, come vedremo più avanti.

Diciamo che io sono uno scemo, non me ne frega niente di quel messaggio e la password la salvo comunque in chiaro.
Nella tabella _options, se cerco %smtp%, ecco compare tra le altre una riga che si chiama wp_mail_smtp, con la nostra bella password in chiaro, come ci avevano avvertito

Wp mail smt parametri nel db

Only shit!
È tutto vero!
Cancelliamo subito quella riga dal db e inseriamo quelle due costanti che ci aveva detto prima! (che è comunque è una soluzione di merda)

Ecco come appaiono ora le impostazioni

Impostazioni parametri login per wp mail smtp con le define

Notiamo subito come il campo password è preinserito e non modificabile; oltre questo il warning è sparito.

Siamo a posto no?
Ho fatto il bravo, ho seguito le istruzioni, sono al sicuro giusto?
Diciamo che ignoro che salvare la password in una costante invece che nel db non è una soluzione ma solo una grandissima minchiata, andiamo a vedere come cambia ora il nostro db:

Wp mail smt parametri nel db anche dopo la define

Holy Shit!
Ma solo a me sembra uguale a prima?

Ora, leggendo la loro doc, c’è questo passaggio

Unlike other Gmail SMTP plugins, our Gmail SMTP option uses OAuth to authenticate your Google account, keeping your login information 100% secure.
Read our Gmail documentation for more details.

In poche parole se si usa Gmail effettuano il login con OAuth.

A parte il fatto che non ho intenzione di usare Gmail come host SMTP, ma a parte questo, anche se fossi intenzionato, col cazzo che userei il mio account (nel quale ho praticamente la mia vita) in mano a questi sviluppatori.

Vi consiglio, invece, Post SMTP Mailer. Un plugin pensato in primis alla sicurezza, e oltre a questo ha anche funzioni in più (un giorno se mi va, forse, farò un tutorial).

P.s. Una volta disinstallato il plugin, i dati rimangono li.
Dovrete cancellarli a mano.

Plugin WordPress: quando sono troppi?

Quando ci si imbatte per le prime volte in WordPress, si scopre subito come questo CMS sia facilmente estendibile tramite delle piccole “applicazioni” (notare le virgolette) chiamate plugin.
Solo sul repository di WordPress.org al momento della stesura di questo articolo (Marzo 2018) ci sono oltre 54.000 plugins, (tra questi anche il mio) senza contare quelli a pagamento su siti come codecanyon!!

Troppi plugin rallentano il sito?

Questa è ancora oggi una delle domande più popolari nei vari gruppi/chat. Immancabilmente, ogni volta che un utente fa questa domanda, regolarmente si ha la riposta da parte del solito integralista di turno secondo il quale se usi piu di 4/5 plugins sei un folle, perchè devi fare il più possibile a mano.
Questo tipo di risposta, da un punto di vista delle prestazioni, non ha alcun senso.

Non concentrarti su quanti…ma su cosa fanno!

È proprio questo il punto cruciale. Il numero di plugins installati di per se non conta assolutamente niente.
Piuttosto, quello che bisogna controllare, è quanti file js e css il plugin carica (se li carica) e il numero di accessi al database (db) che questo fa.
Sopratutto questo parametro, è veramente fondamentale.
Contenuti multimediali a parte (foto, video, etc.) ciò che più rallenta l’esecuzione di un sito è il numero di accessi che questo fa al db…E sai come si fa a vedere il numero di accessi che il tuo sito fa?
Installando un plugin, ovviamente 😀

Installiamo Query Monitor

È proprio questo il nome del plugin che fa per noi.
Query monitor è un plugin usatissimo dagli sviluppatori di temi e plugin, ma può essere tranquillamente usato anche da chi non mastica di programmazione, vista la sua estrema semplicità!
Una volta installato lo possiamo vedere immediatamente all’opera, senza alcun bisogno di configurazione, nella admin bar (ovviamente visibile solo agli admin).
La voce che ci interessa a noi è quella chiamata “Queries”

Una volta cliccato qui abbiamo una lista ordinata, di quali queries (accessi) vengono eseguite e da chi (core WordPress, plugins, etc.).
Più basso è il numero di queries totali e ovviamente meglio è.
L’ideale sarebbe di non superare le 50-60 queries per page load.

Alcuni plugin, o perchè sono stati scritti male, o perchè hanno proprio bisogno di un elevato numero di queries per funzionare, possono da soli anche farne svariate decine…mentre alcuni potrebbero non farne nessuna!

Più avanti spiegherò altri trucchetti per rendere più veloce la propria installazione WordPress, per il momento, avanti con Query Monitor! 😉