2 votes

Test de php mail() dans le problème de localhost

Salut les gars, je viens d'installer msmtp sous linux et j'ai même envoyé un mail depuis le terminal et ça a fonctionné :

echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t username@gmail.com

Mais en php, après avoir modifié le fichier php.ini pour obtenir ceci :

sendmail_path = '/usr/bin/msmtp -t'

et en utilisant ce morceau de code :

<?php
if ( mail ( 'myemail@gmail.com', 'Test mail from localhost', 'Working Fine.' ) ){
echo 'Mail sent';
}
else{
echo 'Error. Please check error log.';
}

?>

Je reçois le message Mail sent mais je ne reçois pas de message dans ma boîte de réception. Pas même dans le dossier spam. Y a-t-il quelque chose qui ne va pas ?

fichier de configuration msmtp :

defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default
host smtp.gmail.com
port 587
auth on user myemail@gmail.com
password password
from myemail@gmail.com
logfile /var/log/msmtp.log

1voto

celticharp Points 11

J'ai rencontré le même problème. Votre script dit la moitié de la solution Vérifiez vos journaux d'erreurs apache, pas ceux de msmtp, s'ils existent :) Mon fichier de log dit :

"msmtp: /etc/msmtprc: must be owned by you"

Ce qui était correct en fait, mon fichier de configuration msmtp dans /etc/msmtp n'appartenait pas à http.

Mon fichier php.ini se présente comme suit :

sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t"

J'espère que cela vous aidera.

0voto

Jörg W Mittag Points 1677

Valeurs de retour

Renvoie TRUE si le courrier a été accepté avec succès pour la distribution, FAUX dans le cas contraire.

Il est important de n ce n'est pas parce que le courrier a été accepté pour la ne signifie pas que le courrier sera effectivement qu'il atteindra effectivement la personne à qui il est destiné. destination.

Cela signifie que le message a été transmis à l'outil de transfert de courrier qui, dans votre cas, est le suivant /usr/bin/msmtp . Il n'y a probablement rien d'anormal dans votre code. Je dirais que l'endroit approprié pour regarder est /var/log/mail.err ou d'autres journaux liés au courrier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X