Envoyer un email par php sous Mac OS X



Un article de Just-Wiki.

Jump to: navigation, search
Cette page a été créée par un membre du Just-Wiki.
Elle est une ébauche et n'est pas protégée. Vous pouvez donc l'améliorer en cliquant sur l'onglet "Modifier".

Email envoyé par la fonction mail() de php sous Mac OS X avec votre serveur web perso sous apache.


Si vous n'arrivez pas à envoyer un email par php à un destinataire, il peut y avoir au moins deux raisons :

- une erreur dans le codage de la fonction mail( ) (voir pour cela : http://fr.php.net/manual/fr/function.mail.php)

- un problème dans l'utilisation par php de sendmail (expliqué dans http://fr.php.net/manual/fr/ref.mail.php). Et comme la doc n'est pas explicite, vous allez ici comprendre ce qu'il faut faire. Deux jours de travail pour en arriver là à un ignorant du programme Terminal de Mac OS X, de sudo, et tout le reste... !

Pour que cela fonctionne il faut modifier deux fichiers :

Pour cela, sauvegardez d'abord le fichier /etc/postfix/main.cf en en faisant une copie. Pour cela, vous pouvez faire :

                   sudo pico /etc/postfix/main.cf

puis mettre un espace n'importe où où cela est possible, puis CTRL X, ajoutez un caractère ou deux au nom du fichier, puis Y.

Pour modifier ensuite le premier fichier, faites à nouveau :

                   sudo pico /etc/postfix/main.cf

et ajoutez la ligne :

                   myhostname = nomdedomainevalide.com

à mettre après :

                   # INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld

Enregistrez (CTRL X, puis Y)

Ce nom de domaine que vous devez ajouter doit être valide et ne pas être le même que celui que vous allez mettre dans le deuxième fichier à modifier. Pour cela faites une sauvegarde comme précédemment pour le fichier main.cf, puis tapez à nouveau :

                   sudo pico /usr/local/php5/lib/php.ini

Ajoutez la ligne :

                   sendmail_path = /usr/sbin/sendmail -t -i -f adressevalide@nomdedomainevalide

que vous mettez après :

                   [mail function]
 ; For Win32 only.
SMTP = localhost
smtp_port = 25


                   ; For Win32 only.
 ;sendmail_from = me@example.com


                   ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").

Puis enfin, enregistrer (CTRLX, puis Y)

Je répète qu'il est impératif que le nom de domaine de l'adresse email ne soit pas le même que celui placé dans le premier fichier main.cf. Par ailleurs l'adresse email doit être valide pour être acceptée comme telle par celui qui reçoit votre message. Il vaut mieux que cette adresse soit votre adresse car elle ne sert qu'à vous envoyer des messages d'erreur envoyés par sendmail si jamais il y avait une erreur bien sûr !!! Le programme sendmail étant situé dans le path donné ci-dessus : /usr/sbin.

Si cela ne fonctionne pas, vous pouvez debugger en faisant :

                   sudo pico /var/log/mail.log

cela vous permet de comprendre ce qui se passe chaque fois que vous envoyez par php un email.

La procédure indiquée fonctionne avec Mac OS X.4.8, apache 1.3 et php 5.2.0

Forum de Discussions Neuf ADSL





Forum Neuf - Neuf Forum

Navigation