L'utilisation par défaut de la fonction mail de PHP avec le serveur SMTP sur Linux
Je suis en train de travailler sur un php/c# projet qui est un Serveur de Messagerie avec une interface web pour gérer le Serveur de Messagerie de l'application.
Le programme est censé fonctionner sur windows et linux, mais j'ai été la plupart du temps à faire mon développement dans windows.
Je l'ai pas sur des tests sous Linux et ont trouvé un problème horrible.
De ce que j'ai googlé sur Windows PHP, vous pouvez choisir un serveur SMTP que vous souhaitez utiliser, mais il semble comme si sur Linux, vous n'avez pas cette option lorsque PHP envoie un email, il ignore totalement mon programme.
Est-il un moyen de faire de PHP d'utiliser un serveur SMTP de votre choix, je sais que vous pouvez utiliser POIRE à overrride les paramètres SMTP mais je préférerais que le standard de la fonction mail de PHP pourrait fonctionner pour d'autres logiciels comme PHPBB forum permettrait d'envoyer des e-mails via mon serveur SMTP au lieu de la valeur par défaut de php mail.
Est-ce quelque chose qui est possible ou est ma seule option pour l'utilisation de la poire?
Comme @Maerlyn a écrit: Pourquoi ne pas vous venez de configurer sendmail pour utiliser le smtp? Qui se soucie si c'est le php.ini ou sendmail config où c'est écrit? Votre demande est toujours juste à l'aide de
mail()
.De ce que j'ai googlé, vous ne pouvez pas utiliser un serveur smtp externe dans le fichier ini pour linux que sur windows. Je n'étais pas en mesure de trouver quelque chose de toute façon
Sur Linux logiciels qui existent, le sendmail binaire prend soin de cela. Sendmail peut pousser à des serveurs smtp en tant que bien, comme le PHP directement sur windows.
OriginalL'auteur Boardy | 2012-08-13
Vous devez vous connecter pour publier un commentaire.
Vous standard fonction mail de php vous enverra à ce qui est défini comme le sendmail _path en php.ini
C'est typiquement
sendmail -t -i
Vous devez configurer sendmail pour utiliser le protocole smtp.
FWIW, la plupart des développeurs qui font beaucoup de l'envoi de mail en PHP apps vilipender le mail() et au lieu d'utiliser l'un des nombreux de diffusion des bibliothèques (ou services) qui fournissent de meilleures possibilités de configuration/fiabilité.
Vous pourriez, par exemple, la pipe, la fonction mail de votre propre script PHP et recourir à toute la bibliothèque que vous vouliez dans le script afin de faire un envoi de mail (et donc de la préservation de l'utilisation de la fonction mail() dans les applications).
OriginalL'auteur Mike Brant
Il n'est pas possible d'avoir la
mail()
fonction de l'utilisation d'un serveur SMTP sur les systèmes non-Windows.Voir les docs sur le
php.ini
réglage smtp.phpmailer est devenu largement utilisé bibliothèque PHP pour l'envoi de courriels. Il prend en charge une variété d'options, y compris SMTP et les différents types d'authentification et le cryptage SSL/TLS. Je vous recommande d'utiliser (ou quelque chose de similaire Voir aussi Zend_Mail) si vous avez besoin d'envoyer des messages en utilisant le protocole SMTP.
Donc vous ne serez pas en mesure d'utiliser la fonction mail, mais votre seule autre option n'est pas à la Poire.
Soin d'expliquer comment?
il suffit de spécifier le chemin de sendmail. J'ai fait pointer vers le ssmtp binaire comme je l'exécute dans un conteneur docker. la fonction PHP mail() fonctionne comme un charme, transmettre le courrier à un serveur SMTP de postfix.
OriginalL'auteur drew010