loading...
CLOSE
10 Aprile 2019

CF7 non invia correttamente le mail

Possono essere diversi i casi dove Contact Form 7 non invia correttamente le mail, di seguito vi riporto qualche caso dove è stata testata una soluzione ed ha funzionato.

Primo caso – CF7 Spinner continua a girare, invia mail multiple oppure non invia mail.

Ci siamo accorti che in alcune installazioni di WordPress esiste un problema di incompatibilità tra Contact Form7 e alcuni Plugin oppure il tema stesso, questa incompatibilità porta a due possibili problemi, il primo è l’invio multiplo della mail, vi trovate nella vostra cassetta mail quattro, cinque e più mail dello stesso contatto, oppure il mancato invio.

Il problema viene evidenziato dal fatto che quando si preme il pulsante di INVIO, l’immagine rotante che indica il processo di invio continua a girare all’infinito, senza indicare l’effettivo invio dei dati, questo comporta uno scompenso all’utente che non capisce se il suo messaggio è stato inviato o meno.

Diverse sono le soluzioni proposte su internet, in alcuni casi ci viene proposto in modo del tutto random di disabilitare alcuni plugin, che come sappiamo, se li abbiamo installati ci serviranno, e in altri casi viene proposto di modificare alcuni file di sistema di CF7, che come sappiamo non è del tutto corretto, al primo aggiornamento perderemmo la modifica.

Come abbiamo risolto allora la questione dell’invio multiplo della mail con cf7?

Una soluzione davvero semplice e duratura nel tempo, semplicemente aggiungendo nel file function.php del tema la seguente stringa:

add_filter( ‘wpcf7_load_js’, ‘__return_false’ );

Se modifichiamo il function.php nel tema child, ci permette di non doverci pensare più, nemmeno dopo un aggiornamenti di tema.

Questa soluzione elimina l’effetto js dello spinner che gira, ma effettivamente funziona.

Secondo caso – CF7 messaggio invio avvenuto ma non arriva la mail

Questo è un caso comune se si ha registrato il dominio presso un hoster e se ne utilizza un altro per ospitare il sito, se nel primo caso manteniamo il dominio con la gestione della posta, caso che è possibile ad esempio con Aruba, mentre nel secondo installiamo WordPress.

In questo caso CF7 non funzionerà correttamente, otterrete un messaggio di invio avvenuto correttamente, ma la mail non partirà, è un problema di smtp, ovvero del server del posta in uscita, cf7 cercherà di inviare la mail utilizzando smtp associato al dominio, ma nel nostro caso il dominio e il servizio di posta si trova presso altro server.

Abbiamo solo un modo per poter ovviare questo problema, è utilizzare un plugin che gestisca smtp, quindi ci dia la possibilità di configurare manualmente i parametri.

Installate e attivate il plugin WP Mail SMTP di wpforms, andate in Impostazioni nel menu a sinistra e selezionate WP Mail SMTP, vediamo come configurarlo correttamente.

From Email – Inserite indirizzo email da cui vengono inviate le email, se nelle impostazioni utilizzate un mailer come Gmail, Yahoo etc dovete utilizzare questo indirizzo.
Se selezionate Force From Email, il sistema utilizzerà indirizzo email inserito sopra per tutte le mail inviate, ignorando eventuali valori settati in altri Plugin.

From Name – Inserite il nome che volete venga visualizzato come mittente, se selezionate Force From Name il sistema utilizzerà questo nome per qualsiasi mail inviata da altri plugin.

Mailer – Potete selezionare il tipo di invio, vediamo due diversi settaggi che nel nostro caso hanno funzionato.

Configurazione 1: Utilizziamo un settaggio smtp diverso

I parametri da inserire in questo caso sono:
SMTP Host – Inserite host dell’smtp, chiedete al vostro provider
Encryption – Inserite se il server smtp utilizza una connessione protetta, anche questo parametro viene fornito dal vostro servizio di Hosting
SMTP Port – Inserite la porta di connessione, anche questo parametro è fornito dall’hoster.
Auto TLS – E’ consigliato lasciarlo attivo, da disattivare solo se richiesto da hosting
Authentication – Anche qui lasciarlo attivo, serve per attivare la richiesta di utilizzare utente e password per invio mail, è un fattore di sicurezza.

SMTP Username – Nome utente fornito dall’hosing
SMTP Password – Password fornito dall’hosting

Configurazione 2: Utilizziamo Google Gmail

 

Per utilizzare questo metodo dovete necessariamente avere un account GMail, se non lo avete provvedete a crearne uno.
I parametri di configurazione si ottengono creando una Web Application da Gmail, per fare questo dovete accedere alla Console API di Google, ve lo spiego di seguito.

Console API di Google per GMAIL

Accedi a questo indirizzo: CONSOLE API DI GOOGLE

Lasciate l’opzione su Crea un progetto e cliccate su Continua

Dovete attendere qualche secondo, fino a ricevere una notifica in alto a destra vicino al vostro Account, le API sono pronte, NON cliccate sulla notifica ma nella pagina principale.

Cliccate sul pulsante Vai a credenziali per accedere alla schermata di scelta delle API.

Selezionate quindi Gmail API nella prima combo di scelta, e Server web nella seconda (Da dove chiamerai l’api), cliccate ora sul pulsante Di quali credenziali hai bisogno? per proseguire.

Otterrete la seguente richiesta, selezionare la voce, SET UP CONSENT SCREEN

Inserite un nome valido per la vostra applicazione, ad esempio GMail SMTP

In questa sezione invece inserite il dominio del sito che utilizzerà le API di Gmail

Se avete inserito tutti i dati correttamente, cliccate su Salva per proseguire.

Riceverete adesso il seguente messaggio, dove potrete cliccare sul pulsante Crea credenziali.

Selezionare dall’elenco la voce ID Client Oauth

Nella schermata di configurazione dell’ ID Client inserire i dati richiesti, innanzitutto selezionate come tipo di applicazione, la voce Applicazione Web, come nome lasciate quello che trovate, e andiamo a configurare le limitazioni.

Nella voce Origini Javascript autorizzate inserite url del vostro sito, se come ne nostro caso, vi esce avviso su Origine non valida, vi basterà cliccare sul link elenco dei domini autorizzati e inserire il vostro dominio per validare il campo.

Nel campo URI di reindirizzamento autorizzati, dovete tornare nel Plugin su WordPress e recuperare il contenuto del campo:

A questo punto dovreste aver generato correttamente le credenziali, che dovranno essere inserite nel Plugin WP Mail SMTP, nei campi Client ID e Client Secret.

Salvate i parametri del plugin, e provate a fare un invio mail di test, cliccando sulla voce di menu Email Test che trovate prima dei parametri di configurazione, vi basterà inserire l’indirizzo mail dove volete ricevere la mail di prova, se tutto è configurato correttamente, riceverete il messaggio di invio avvenuto con successo, altrimenti nella stessa schermata vi verrà proposto l’errore.

Leave A Comment

SitoSmart - Simone&Stefano
Invia Messaggio