Comment puis-je indiquer à PHP mail() doit être envoyé à l'aide d'un serveur de messagerie externe?
J'ai mon e-mail hébergé chez Rackspace Courriel et que vous souhaitez l'utiliser comme mon serveur de messagerie pour le formulaire de contact sur mon site.
Regardant le php.fichier ini, je suis seulement en mesure de préciser le sendmail_path
sur les systèmes UNIX, à partir de laquelle j'ai lu les points du programme qui envoie de mail sur le serveur.
Je ne veux pas envoyer de mail à partir de mon serveur Ubuntu puisque je ne suis pas assez expérimenté pour faire une configuration de la sécurité pour la messagerie... je voudrais relais tout à Rackspace est mail.emailsrvr.com
.
Ma question est, comment puis-je spécifier la configuration de PHP sur mon serveur que le mail()
de la fonction à l'aide d'un serveur de messagerie externe?
Obtenu Swiftmailer mis en place avec Rackspace e-Mail, sera commutation de SendGrid par Rackspace plus tard, une fois l'email augmentation de volume. Merci!
OriginalL'auteur Matt | 2011-07-04
Vous devez vous connecter pour publier un commentaire.
mail()
est destiné à s'en remettre à un serveur SMTP local, et a fait un mauvais travail. Pour une bonne prise en charge du courrier, de l'utilisation Swiftmailer ou PHPMailer, tous deux entièrement en charge serveurs SMTP externes et sont beaucoup plus faciles à utiliser (plus vous laisser faire des choses comme texte/html mails, pièces jointes, etc...)OriginalL'auteur Marc B
Depuis que je suis à la recherche de cette question et suis tombé sur ce post et un tiers bibliothèque php n'était pas une option pour moi.
Comme nous le savons, php utilise le
sendmail
de commande du serveur par défautLe
sendmail_path
option dansphp.ini
peut être modifié pour remplacer la configuration de votre propre commande avec ses propres arguments, etc.Par exemple:
sendmail_path = /usr/bin/unix2dos | /usr/bin/dos2unix | /usr/sbin/sendmail -t -i
SSMTP vous permettra de diriger les e-mails sortants à un serveur de messagerie à partir de votre site web/serveur php. https://wiki.archlinux.org/index.php/SSMTP
Ensuite, vous pouvez utiliser
sendmail_path = /usr/sbin/ssmtp -t
de dire à php d'utiliser ssmtp à la place de sendmail. Assurez-vous de redémarrer votre serveur web lorsque vous avez fait des modifications de php.iniÉgalement vous assurer que vous avez configuré ssmtp et validé votre SPF, DKIM, DMARC dossiers avant de faire les changements à
sendmail_path
en php.iniPar exemple serveur de Messagerie gmail.
/etc/ssmtp/ssmtp.conf
Pour une pile d'échange de question à la même voir
https://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server
De se développer sur cette.
Si vous utilisez Google, chaque
From:
adresse de messagerie doit être configuré sur le compte de l'envoi comme un "Compte Propre" définition des sous-comptes. Sinon google va réécrire les en-têtes avecx-google-original-from
et spécifier le De comme le compte de l'envoi de la place.OriginalL'auteur fyrye
Pour ceux qui ne veulent pas utiliser une bibliothèque PHP comme Swiftmailer (et, finalement, ceux qui ne veulent pas toucher à leur base de code PHP tout simplement pour passer des serveurs SMTP), vous pouvez effectuer l'une des opérations suivantes:
1.) Les Serveurs Windows: Modifier votre PHP fichier INI pour utiliser un serveur SMTP externe hôte de relais. Vous verrez dans l'enveloppe de la section intitulée "Pour les serveurs Windows uniquement" - ou quelque chose de similaire.
2.) Les Serveurs Linux: Installer Postfix (e-mail du service de relais) et le configurer pour utiliser un serveur SMTP externe de l'hôte. Votre installation de PHP tentera de l'utiliser pour envoyer des e-mails par défaut, sans aucune configuration supplémentaire.
** * * * Ce n'est évidemment pas pour but de vous donner le détail étape par étape sur l'une des deux options ci-dessus, mais plutôt de vous diriger dans la bonne direction si vous êtes à la recherche d'une solution qui ne nécessite pas de modification des instances de votre code PHP mail() est appelée.
OriginalL'auteur Angelo Ativo
Pas liées à la question, mais il y a mailer les démons qui agit uniquement comme un démon sendmail, mais les relais à une messagerie externe.
http://freshmeat.net/projects/nullmailer/
Si vous n'avez même pas besoin d'un exim/sendmail installer sur votre machine, je vous suggère d'essayer. Bien sûr, vous pouvez toujours utiliser un autre tiers des alternatives, cependant, si vous exécutez un démon, localement, il sera en mesure de file d'attente de la poste, qui une lib php ne peut pas, si le relais smtp n'est pas disponible.
Il est normal de repo pour Debian donc je suppose que c'est vrai pour ubuntu,
apt-get install nullmailer
devrait suffire. Ensuite, vous pouvez le configurer avec 1 ou plusieurs smtp relais, il est autorisé à utiliser.Voir plus ici: http://packages.ubuntu.com/oneiric/nullmailer
Comme une note de côté, un système linux sans un expéditeur système devient paralysé dans de nombreuses autres façons, donc je pense que c'est une bonne idée de toute façon.
OriginalL'auteur jishi
Réglage de la mail fonction pour utiliser le SMTP est uniquement disponible sur Windows. Sur d'autres plates-formes, PHP doit utiliser disponibles localement ou sendmail sendmail déposez-en un peu fine.
Si vous souhaitez utiliser un SMTP sous un serveur Windows, vous devrez utiliser une bibliothèque tierce comme mon préféré Switfmailer.
Avec Swiftmailer l'envoi d'un e-mail ressemble à ceci:
OriginalL'auteur AlexV
Le PHP par défaut de la fonction 'mail()' obtiendrez uniquement les fonctionnalités de base pour envoyer un e-mail. Pour Rackspace, vous aurez probablement besoin de l'installation d'une connexion SMTP de leur serveur de messagerie. Pour ce faire, il est préférable d'obtenir un plus avancé et développé de diffusion de la classe. Code plusieurs cadres de les avoir à disposition. Si vous êtes à la recherche d'un bon paquet, découvrez PHP Mailer. C'est presque une norme de nos jours.
http://phpmailer.worxware.com/
OriginalL'auteur jjwdesign