web-dev-qa-db-fra.com

Postfix ne transfère pas les emails _ du formulaire de contact WordPress vers mon compte Gmail

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).

Mon problème

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 .

Zone DNS pour ma machine

  1. A record contenant le domaine.
  2. Cname record contenant une variante www. pour le domaine.
  3. Trois enregistrements 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.

Erreur exacte et tentatives de débogage:

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
  • Il n'y a pas d'erreur dans les journaux Nginx.

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.

Reproduire mon problème:

  1. Créez un droplet DigitalOcean Ubuntu 16.04.
  2. Créez une pile LEMP et exécutez un site Web WordPress.
  3. Sudo apt-get update && Sudo apt-get upgrade postfix.
  4. Choisissez la configuration "site internet".
  5. Tapez le domaine du site avec lequel vous travaillez.
  6. Installez le formulaire de contact 7 sur votre site WordPress et essayez de vous envoyer un courrier électronique test.

Ma question

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.


Mise à jour

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
5
JohnDoea

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.

2
JohnDoea

De Comment réparer wordpress le formulaire de contact n'envoyant pas de courrier électronique avec smtp :

Pourquoi WordPress n'envoie pas de courriels

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é.


Sept façons différentes de dimanche

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:

  1. WP Mail SMTP: Configuration SMTP
  2. Gmail ou G Suite
  3. SendGrid
  4. Mailgun
  5. Cachet de la poste
  6. WP SES
  7. SparkPost

Configuration 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 ssmtpDOIT ê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.

Suivez les liens de l'article WordPress.

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.

2
WinEunuuchs2Unix