Dans Ubuntu 16.04 VPS avec LEMP dans DigitalOcean, j’ai un site Web WordPress comportant un formulaire de contact que j’ai créé avec . Formulaire de contact 7 ( CF7).
Je ne parviens pas à transférer des courriels de mon formulaire de contact WordPress (CF7) vers mon courrier électronique (Gmail).
Je dois dire que je préférerai humblement une solution non plugin .
A
record contenant le domaine.Cname
record contenant une variante www.
pour le domaine.NS
pour associer des demandes DNS à mon domaine, à mon adresse IP et à l'application correspondante sur son ordinateur.J'ai essayé d'ajouter des enregistrements MX
, par la méthode automatique de DigitalOcean (en cliquant sur le bouton Add Gmail MX records
de l'outil de gestion DNS de DigitalOcean), et 5 enregistrements MX
ont été ajoutés, mais j'ai toujours eu la même erreur après avoir immédiatement essayé. envoyer un email de test de WordPress (voir erreur ci-dessous).
À l'heure actuelle, la zone DNS ne contient aucun enregistrement MX
car je ne suis pas sûr qu'ils soient nécessaires même si tout ce que je souhaite dans le contexte des e-mails consiste simplement à envoyer WordPress des demandes de formulaire de contact à mon compte Gmail et que toujours dans le même état avec la même erreur.
Je reçois toujours le message d'erreur suivant, dans une boîte rouge sous le formulaire de contact:
Impossible d'envoyer votre message.
En raison de cette erreur, rien n’est envoyé nulle part (pas même dans le dossier Spam).
En essayant de déboguer ceci, j'ai exécuté le code suivant pour créer un journal pour Postfix:
touch /var/log/mail.log
Les autorisations sont:
rw-r--r-- 1 root root
Mais rien n'est écrit dans ce journal d'erreurs après j'essaie de m'envoyer un email de test et j'échoue.
Sudo apt-get update && Sudo apt-get upgrade postfix
.Qu'est-ce qui cause ce problème?
Peut-être que je peux essayer quelque chose avec Postfix ou un autre outil que je devrais utiliser comme sSMTP ? Je préférerais un outil minimal à aucun outil. J'insiste sur le fait que je n'envoie pas d'autres courriers électroniques à mon compte Gmail que ceux qui se trouvent dans le formulaire de contact WordPress, et que je n'envoie aucun autre courrier électronique nulle part, à partir de cette machine.
Dans le passé, j'avais installé Postfix comme décrit ci-dessus et il n'y avait pas de problèmes. Si vous avez une idée de ce qu'il faut vérifier, des détails que je devrais fournir, veuillez me le dire et je le modifierai.
1) Le fichier /etc/postfix/main.cf
est entièrement par défaut.
2) Sortie de ps -efl | grep postfix
:
5 S root 4611 1 0 80 0 - 16352 ep_pol 07:42 ? 00:00:00 /usr/lib/postfix/sbin/master -w
4 S postfix 4613 4611 0 80 0 - 16881 ep_pol 07:42 ? 00:00:00 qmgr -l -t unix -u
4 S postfix 4930 4611 0 80 0 - 16869 ep_pol 11:02 ? 00:00:00 pickup -l -t unix -u -c
0 S root 5201 5187 0 80 0 - 3236 pipe_w 12:19 pts/0 00:00:00 grep --color=auto postfix
Le problème semble venir de WordPress, notamment de la configuration du formulaire de contact, car il est également survenu avec sSMTP
que certains considèrent comme un outil plus simple que Postfix:
Lorsque j'ai supprimé le formulaire d'origine et en ai créé un nouveau, j'ai reçu un message vert indiquant que le message avait été envoyé dans un courrier électronique test.
Ici aussi, je n'ai pas reçu de message, même au répertoire Spam, mais au moins la réponse était différente et le problème initial n'avait rien à voir avec Postfix.
De Comment réparer wordpress le formulaire de contact n'envoyant pas de courrier électronique avec smtp :
WordPress utilise la fonction de messagerie PHP pour envoyer les courriels générés par WordPress ou par tout autre plugin de contact tel que WPForms. Cependant, de nombreux WordPress serveurs d'hébergement ne sont pas configurés pour utiliser la fonction de messagerie.
De plus, afin de réduire les spams, votre fournisseur de messagerie vérifie souvent si votre messagerie provient de l'emplacement où il prétend provenir. Par exemple, si votre serveur de messagerie est yahoo.com mais que votre courrier électronique prétend avoir été envoyé à partir du domaine de votre site Web, il est probable que la notification de votre formulaire sera bloquée avant même qu'elle n'atteigne le dossier courrier indésirable.
C'est pourquoi nous vous recommandons d'utiliser SMTP pour envoyer des courriels de WordPress au lieu d'utiliser la fonction de messagerie par défaut PHP.
Le protocole SMTP (Simple Mail Transfer Protocol) est un moyen standard de l’industrie d’envoyer des courriers électroniques qui utilisent la méthode d’authentification appropriée pour garantir leur délivrabilité.
Ce titre de section s’explique par le fait que nous sommes aujourd’hui dimanche et que l’article Comment réparer wordpress le formulaire de contact n’envoyant pas de courrier électronique avec smtp répertorie sept méthodes différentes pour configurer SMTP:
Pour ma part, j’utilise la méthode la plus simple pour que cron
m'envoie par courrier électronique des messages d'erreur et des rapports de sauvegarde quotidiens: sauvegarde de la configuration Linux, des scripts et des documents sur Gmail .
Pour résumer les étapes:
Sudo apt install ssmtp
Sudo apt install sharutils
Vous devez également demander à Gmail d'autoriser un accès moins sécurisé à vous-même afin d'accepter les courriels. C'est documenté dans ma réponse ci-dessus.
Votre fichier de configuration pour ssmtp
DOIT être modifié. Voici le mien:
$ Sudo cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# November 17, 2017.
# Required for cron to e-mail backups as per Ask Ubuntu answer:
# https://askubuntu.com/questions/917562/backup-linux-configuration-scripts-and-documents-to-gmail/922493#922493
#root=postmaster
[email protected]
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=mail
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=WinEunuuchs2UnixPassword
UseTLS=YES
UseSTARTTLS=YES
#Debug=YES
# Where will the mail seem to come from?
#rewriteDomain=
rewriteDomain=gmail.com
# The full hostname
hostname=alien
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES
Changez les lignes ci-dessus en nom de compte, mot de passe et nom d’ordinateur Gmail:
[email protected]
[email protected]
AuthPass=WinEunuuchs2UnixPassword
hostname=alien
Notez que WinEunuuchs2UnixPassword est votre mot de passe Gmail et non votre mot de passe Linux. Pour obtenir votre hostname
, utilisez echo $HOSTNAME
.
Les liens dans l'article WordPress du premier lien ci-dessus doivent être suivis pour configurer Gmail. Consultez uniquement mon lien pour une vue d'ensemble de base.