Contexte: Si vous avez configuré un serveur Apache local à des fins de développement, vous pouvez avoir rencontré le problème où sendmail prend beaucoup de temps (au moins une minute) pour envoyer des e-mails. Cela est extrêmement frustrant si vous essayez de déboguer un problème avec un e-mail que vous avez généré.
Il existe plusieurs messages de forum sur Internet qui traitent de ce problème. Cependant, aucun thème n'a décrit quoi faire avec suffisamment de détails pour ma connaissance limitée. Voici les étapes qui ont fonctionné pour moi:
1) trouvez votre nom d'hôte (au cas où vous l'auriez oublié) en utilisant cette commande:
:~$ cat /hosts/hostname
myhostname
2) éditez le fichier /etc/hosts
et assurez-vous que la première ligne est la suivante:
127.0.0.1 localhost.localdomain localhost myhostname
3) éditez le fichier de configuration de sendmail ( /etc/mail/sendmail.cf
dans Ubuntu) et décommentez la ligne#O HostsFile=/etc/hosts
4) Redémarrez l'ordinateur. L'ordinateur devrait démarrer beaucoup plus rapidement maintenant et la fonction mail () devrait revenir presque immédiatement. CEPENDANT, les e-mails ne seront réellement envoyés que si vous suivez l'étape 5.
5) Vous devez à nouveau utiliser l'option «-f» de sendmail lorsque vous utilisez la fonction de messagerie. Par exemple:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Ma question pour mes confrères serveurs est:
Quelles autres modifications peuvent être apportées pour que je ne doive pas utiliser l'option sendmail -f? Bien qu'il ne soit pas très difficile d'ajouter l'option -f, c'est un problème lorsque votre CMS (tel que Drupal) n'utilise pas l'option -f lors de l'envoi de courrier. Vous auriez besoin de pirater un module principal pour ajouter cette option.
cat /etc/hostname