Lorsque mon formulaire Web est rempli et envoyé, je suis redirigé vers une page qui dit:
Merci d'avoir soumis.
mais il y a une boîte d'avertissement rouge qui dit:
Impossible d'envoyer un e-mail. Contactez l'administrateur du site si le problème persiste.
Je pense que c'est le serveur SMTP, mais je ne sais pas comment résoudre ce problème.
Essayez d'utiliser:
Prise en charge de l'authentification SMTP
avec PHPMailer
Si vous utilisez Gmail pour configurer STMP, procédez comme suit:
L'erreur:
Impossible d'envoyer un e-mail.
provient de drupal_mail () et il est considéré comme très général et peut être lié à de nombreuses choses différentes telles qu'une mauvaise configuration de votre Drupal, PHP ou service SMTP de votre système d'exploitation.
La première chose à faire est de vérifier le système de messagerie ou les journaux Apache (par exemple /var/log/Apache2/error.log
) pour plus de détails sur l'erreur, car vous pourriez simplement être manquant sendmail
lui-même (sauf si vous souhaitez utiliser un service SMTP externe).
Si votre Drupal est hébergé sur votre serveur dédié et qu'il s'agit d'une toute nouvelle configuration, il vous manque probablement un serveur SMTP (car il pointe vers localhost
par défaut), sauf si vous envisagez d'utiliser celui externe.
Si c'est votre machine de développement locale, ignorez l'erreur (car elle devrait fonctionner correctement sur le serveur dédié), essayez d'installer MailCatcher , ou vous devrez installer le serveur SMTP comme indiqué ci-dessus.
Voici quelques autres suggestions:
mail_system
variable, si elle est remplacée - réinitialisez-la à sa valeur par défaut (drush vdel mail_system
),php -i | grep -ie mail -e smtp
) et confirmez que sendmail_path
, SMTP
hôte et smtp_port
sont corrects,vérifier la connectivité à votre serveur SMTP en utilisant telnet
, par exemple.
telnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
pour vérifier si l'hôte n'est pas en panne, résolu par le DNS ou non bloqué par le pare-feu,
si vous utilisez postfix
, vérifiez si httpd_can_sendmail
est réglé sur 1
(setsebool httpd_can_sendmail 1
).
Enfin, testez votre e-mail par la commande PHP:
php -r 'mail("[email protected]", "Mail test", "It works!");'
et vérifiez cela page si l'e-mail a été reçu.
Vérifiez vos journaux d'erreur Drupal et chien de garde PHP. Il peut s'agir d'erreurs de journalisation qui vous aideront à déterminer le problème. Consultez également votre administrateur système). pour voir si les informations d'identification du serveur SMTP que vous utilisez sont valides (c.-à-d. adresse, port, cryptage, mot de passe, etc.).
J'ai été pris dans ce problème en raison d'un problème de sandbox Amazon SES. Amazon SES ne vous permet pas d'envoyer des e-mails à des domaines non vérifiés en mode sandbox. Vous devrez demander un accès à la production et le problème sera résolu.
Si le simple fait de voir ce qui serait envoyé suffit, le module maillog est très pratique.
La réponse acceptée a résolu ce problème, mais notez qu'au moment de ce post, Gmail bloque tout Application moins sécurisée car votre drupal ne fonctionne pas avec HTTPS.
Ensuite, vous devez Autoriser les applications moins sécurisées dans Mon compte Gmail en
Ou obtenez un certificat SSL pour votre site drupal.
Sur les mêmes hébergements partagés Vous ne pouvez pas envoyer d'e-mail sans créer d'e-mail pour le webmaster. Par exemple. si vous avez un domaine test.com, vous devez créer un e-mail [email protected] ou [email protected] dans votre Cpanel et définir cet e-mail comme e-mail principal du site Web. Cet e-mail sera dans le champ "De" de votre courrier. Ou créez votre propre courrier pour le domaine et définissez ce courrier comme principal pour le site. Cela dépend des paramètres de sécurité de l'hébergement partagé.
Au cas où cela aiderait quelqu'un d'autre:
J'ai reçu cette erreur et j'ai découvert que c'était parce que j'avais à la fois le Cc et le Cci définis sur la même adresse e-mail dans mes en-têtes drupal_mail. (c'était parce que je testais)
Étape 1: vous pouvez définir les paramètres SMTP Étape 2: ligne de commande ouvrir le port 465 "-A INPUT -p tcp --dport 465 -j ACCEPT"
Les paramètres suivants ont fonctionné pour moi sur Windows.
Si vous utilisez Gmail pour configurer STMP, procédez comme suit:
Serveur SMTP: smtp.gmail.com
Port SMTP: 465
Utiliser un protocole crypté: utiliser SSL
Authentification SMTP - Votre nom d'utilisateur et mot de passe gmail
Laissez les autres options par défaut