2010-04-30 2 views
0

Je voudrais utiliser PHP pour envoyer des emails de mon localhost à d'autres personnes. De quoi ai-je besoin pour faire ça? Par exemple ai-je besoin d'installer mailserver? Si je ne me trompe pas, il y a une langue dans laquelle vous n'avez pas besoin d'un mailsever pour envoyer un email. Est ce bien?PHP: comment envoyer les bases de l'email

À l'intérieur de PHP.ini, il y a [fonction de courrier]. Comment configurer cela? J'ai vérifié sur Internet, mais je ne comprends pas vraiment comment cela fonctionne.

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

sendmail_from [email protected] //Not sure how to write this? 
+1

Quel système d'exploitation utilisez-vous? – webbiedave

+0

Son très évident si l'erreur dit pour WIN32 puis le système d'exploitation doit être Windows ... :) –

+0

Im utilisant Vista Home premium SP1 – user329394

Répondre

0

mail("[email protected]", "Subject", "This is an email!");

Vous avez juste besoin d'installer un serveur de messagerie. Si vous êtes sur Linux, vous pouvez essayer exim, si vous êtes sur Windows, vous pouvez utiliser le serveur SMTP fourni avec IIS.

+0

N'oubliez pas que toutes les versions de Windows ont IIS, et certains qui ne le font pas l'ai installé. Je crois que XP Home ne l'avait pas sur le disque d'installation. – patricksweeney

+0

XP Pro l'a, XP Home n'est pas conçu pour être un système serveur. –

+1

Exactement, mais vous seriez surpris de voir combien de messages sur le forum j'ai vu au cours des années de personnes demandant pourquoi ils ne l'ont pas. – patricksweeney

2

Vous devez configurer un serveur de messagerie local si vous souhaitez envoyer du courrier à l'aide de la fonction mail(). Vous ne pouvez pas utiliser un serveur de messagerie distant car la fonction php mail() ne vous permet pas de spécifier les informations d'authentification. Cependant, j'ai trouvé la mise en place d'un serveur de messagerie local ennuyeux et ennuyeux, en plus il peut être dangereux. Je recommande de regarder dans PHPMailer. C'est simple à utiliser et à faire fonctionner.

0

Oui, vous avez besoin d'un serveur de messagerie disponible. La fonction mail() de PHP accepte les informations que vous lui donnez et les transmet au serveur de messagerie pour livraison. PHP ne livre pas le courrier lui-même.

Le serveur de messagerie que vous utilisez dépend du système d'exploitation que vous utilisez. Traditionnellement sur les machines de type Unix, il y aura une installation de sendmail ou d'un autre service en cours d'exécution. Sous Windows, vous pouvez spécifier le nom d'un serveur SMTP dans le fichier de configuration php.ini.

0

La méthode la plus simple consiste à utiliser la commande mail(). Sur Linux c'est un pipe à sendmail binaire et sur Windows, je ne sais pas, il utilise probablement une bibliothèque Microsoft vaudou.

Quoi qu'il en soit, je recommande fortement d'utiliser phpMailer car c'est un projet mature, vraiment stable, facile à installer, avec beaucoup de fonctionnalités et il inclut également une implémentation client SMTP et IMAP, donc multiplateforme. Quoi qu'il en soit, vous devriez quand même utiliser un serveur SMTP local comme premier bond pour gérer la file d'attente en cas de panne du réseau.

1

Vous avez besoin du logiciel qui enverra réellement l'email après que votre script PHP ait fait une demande à cet effet (en utilisant la fonction mail: http://php.net/mail). Comme indiqué dans certaines des réponses précédentes, il existe des options logicielles pour cela, quel que soit le système d'exploitation que vous exécutez.

Ceci, cependant, peut parfois être assez difficile pour un débutant. En règle générale, votre FAI vous donne accès à un serveur SMTP à partir duquel envoyer des emails, et vous pouvez configurer votre configuration pour ce faire. À des fins de développement, cela devrait faire l'affaire pour vous. Ces détails seront probablement sur le site Web de votre fournisseur d'accès Internet (ou peut-être dans votre client de messagerie, quelque part.) Votre config se finir par quelque chose comme

[mail function] ; For Win32 only. 
SMTP = smtp.my-isp.com 
smtp_port = 25 
sendmail_from [email protected] 

A défaut, vous pouvez simplement télécharger votre script à votre hébergeur, où il devrait déjà être configuré pour fonctionner.

Espérons que ça aide.

0

phpmailer est un bon choix. vous pouvez google pour plus de détails. En fait, l'email est envoyé en utilisant le socket.

0

Il n'est pas nécessaire d'installer un module spécial pour accéder aux fonctions de messagerie en PHP. Mais pour que les fonctions Mail soient disponibles, PHP doit avoir accès au binaire sendmail sur votre système lors de la compilation. Si vous utilisez un autre programme de messagerie, tel que qmail ou postfix, veillez à utiliser les wrappers sendmail appropriés qui les accompagnent. PHP va d'abord chercher sendmail dans votre chemin, puis dans les domaines suivants:

/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. 

Il est fortement recommandé d'avoir sendmail disponible à partir de votre PATH. En outre, l'utilisateur qui a compilé PHP doit avoir l'autorisation d'accéder au binaire sendmail.

Si vous travaillez sur un environnement Linux en utilisant un fournisseur d'hébergement est fort probable que le sendmail est déjà présente, sinon vous pouvez vérifier à partir d'un terminal de Doing:

cat some_file.txt |mail -s "test mail" [email protected] 
Questions connexes