Solución:
Intente usar:
Soporte de autenticación SMTP
con PHPMailer
Si usa Gmail para configurar STMP, siga estos pasos:
- Servidor SMTP: smtp.gmail.com
- Puerto SMTP: 465
- Use protocolo encriptado: use SSL
- Autenticación SMTP: su nombre de usuario y contraseña
- Deja las otras opciones por defecto
El error:
No se puede enviar el correo electronico.
proviene de drupal_mail () y se considera que es muy general y puede estar relacionado con muchas cosas diferentes, como la mala configuración de su sitio Drupal, la configuración PHP o el servicio SMTP de su sistema operativo.
Lo primero que debe hacer es verificar el sistema de correo o los registros de Apache (p. Ej. /var/log/apache2/error.log
) para obtener más detalles sobre el error, ya que podría faltar sendmail
en sí mismo (a menos que desee utilizar cualquier servicio SMTP externo).
Si su Drupal está alojado en su servidor dedicado y es una configuración nueva, lo más probable es que le falte el servidor SMTP (ya que apunta a localhost
por defecto), a menos que planee utilizar el externo.
Si es su máquina de desarrollo local, ignore el error (ya que debería funcionar bien en el servidor dedicado), intente instalar MailCatcher, o tendrá que instalar el servidor SMTP como se indicó anteriormente.
Aquí hay algunas otras sugerencias:
- si utiliza el módulo SMTP, compruebe si lo ha configurado (consulte el archivo README) correctamente, incluida la configuración correcta del servidor,
- comprobar el valor de
mail_system
variable, si se anula, restablezca el valor predeterminado (drush vdel mail_system
), - verifique su configuración de correo PHP (
php -i | grep -ie mail -e smtp
) y confirme quesendmail_path
,SMTP
anfitrión ysmtp_port
son correctos, -
verifique la conectividad a su servidor SMTP usando
telnet
, p.ejtelnet $(php -r 'echo ini_get("SMTP") . " " . ini_get("smtp_port");')
para verificar si el host no está inactivo, resuelto por el DNS o no bloqueado por el firewall,
-
si usa
postfix
, comprobar sihttpd_can_sendmail
se establece en1
(setsebool httpd_can_sendmail 1
).
Finalmente, pruebe su correo electrónico con el siguiente comando PHP:
php -r 'mail("[email protected]", "Mail test", "It works!");'
y consulte esta página si se ha recibido el correo electrónico.