Page 1 sur 1

[PHP 4.3.10] utiliser un serveur SMTP externe

Posté : 29 mars 2006, 10:44
par perfect_blue
Bonjour,

J’utilise souvent PHP pour l’envoie de mail, j’utilise la bien connue fonction mail mail() précédée des en-têtes classiques pour (from,reply…).
Ceci fait c’est le service mail de mon hébergeur qui prend l’envoie en charge.

Ma question est très simple : si à la place du service mail de mon provider je veux utiliser mon acompte gmail et son service SMTP pour que les mails partent de chez eux que dois je apporter comme modification à mon code ?

Cette manipulation n’est peut être réalisable.

Merci d’avance pour vos réponses.

Posté : 29 mars 2006, 10:45
par zeus
Si tu n'as pas accès au php.ini et que tu ne peut pas modifier les paramètres de ton serveur SMTP, je ne vois pas ...

Posté : 29 mars 2006, 10:57
par perfect_blue
Si, je possède mon propre fichier php.ini et je peux le modifier.
Que dois je modifier dans ce fichier ?

Posté : 29 mars 2006, 11:11
par Cyrano
smtp = smtp.gmail.com

Attention, par défaut le port smtp est 25, mais pour gmail, c'est le port 587 si je ne me trompe pas.

Posté : 29 mars 2006, 11:35
par perfect_blue
Ou dois je mettre mes informations d’authentification pour utiliser mon acompte ??

Posté : 29 mars 2006, 11:38
par perfect_blue
petit NB le champ SMTP = localhost est précédé d'un
; For Win32 only.

mais le serveur fonctionne sous linux.

Posté : 29 mars 2006, 12:11
par Ripat
Quel est le MTA de ton serveur? Exim ?

Si tu ne veux pas changer la config du MTA, utilise PEAR::MAIL en mode SMTP (tu contournes le MTA).
http://pear.php.net/package/Mail

Doc:
http://pear.php.net/manual/fr/package.mail.mail.php

Posté : 29 mars 2006, 13:54
par perfect_blue
La solution pear ::mail a l’air bonne mais comment savoir si il est installé chez mon provider ?

J’ai bien essayé des exemple de codes mais a chaque foi je suis callé au include.

Posté : 29 mars 2006, 14:58
par Ripat
Si tu as un dédié et un accès ssh, c'est très simple:
#pear install mail

Sinon, tu installes les librairies et dépendances à la main dans un répertoire de ton choix, par exemple /ma/lib/pear/. N'oublies pas, dans ce cas, de rajouter:
ini_set('include_path',  '/ma/lib/pear/');
Dans ton/tes script(s) qui appelle(nt) PEAR.

Plus d'Info:

Posté : 29 mars 2006, 15:27
par perfect_blue
Bon voilà la suite.
Par défaut pear est installé sur ma machine en local mais pas chez mon provider.
Est il possible de l’installer dans mon répertoire locale ?

Posté : 29 mars 2006, 15:34
par Ripat
Bon voilà la suite.
Par défaut pear est installé sur ma machine en local mais pas chez mon provider.
Est il possible de l’installer dans mon répertoire locale ?
Oui. La librairie PEAR est composée de fichiers PHP. Il suffit donc de les télécharger sur ton site dans un répertoire de ton choix. Ce répertoire peut-être hors document_root. Lis bien mon post ci-dessus pour les précautions à prendre pour ce type d'installation "à la main".

Posté : 29 mars 2006, 16:06
par perfect_blue
Oky, bon voilà j’ai téléchargé un un fichier pear-1,2,1.tar.gz,
Je l’ai décompresser et à l’intérieure se trouve au premier niveau un fichier XML et un répertoire.

Voilà le contenu du répertoire :

drwxr-xr-x 4 raoullhe raoullhe 136 Mar 29 15:41 OS
drwxr-xr-x 15 raoullhe raoullhe 510 Mar 29 15:41 PEAR
-rw-r--r-- 1 raoullhe raoullhe 30143 Aug 6 2003 PEAR.php
-rw-r--r-- 1 raoullhe raoullhe 14892 Jul 8 2003 System.php
-rw-r--r-- 1 raoullhe raoullhe 3502 Jul 8 2003 package.dtd
drwxr-xr-x 6 raoullhe raoullhe 204 Mar 29 15:41 scripts
-rw-r--r-- 1 raoullhe raoullhe 1735 Jun 17 2003 template.spec

Dois le copier tel quel sur le serveur ou y’a t’il des modification a apporter ?

Posté : 29 mars 2006, 16:29
par Ripat
Ca m'a l'air correct mais n'oublie pas le paquet Net_SMTP dont dépend MAIL pour l'envoi direct en SMTP.

Edit: La dernière version stable semble être la 1.1.9
http://pear.php.net/get/Mail-1.1.9.tgz

Pour Net_SMTP:
http://pear.php.net/get/Net_SMTP-1.2.8.tgz
http://pear.php.net/package/Net_Socket/
http://pear.php.net/package/Auth_SASL/

Code : Tout sélectionner

About Mail-1.1.9 ================ Provides Classes: Package Mail Summary Class that provides multiple interfaces for sending emails Description PEAR's Mail package defines an interface for implementing mailers under the PEAR hierarchy. It also provides supporting functions useful to multiple mailer backends. Currently supported backends include: PHP's native mail() function, sendmail, and SMTP. This package also provides a RFC822 email address list validation utility class. Maintainers Chuck Hagenbuch <[email protected]> (lead) Richard Heyes <[email protected]> (developer) Jon Parise <[email protected]> (lead) Version 1.1.9 Release Date 2005-09-13 Release License PHP/BSD Release State stable Release Notes - SMTP connections are now reset (RSET) when an error occurs. (Bug 5212) - The SMTP driver now exposes a disconnect() method which forcibly destroys the SMTP connection. (Bug 5372) Release Deps Package Net_SMTP >= 1.1.0 (optional) Last Modified 2005-12-03

Code : Tout sélectionner

About Net_SMTP-1.2.7 ==================== Provides Classes: Package Net_SMTP Summary Provides an implementation of the SMTP protocol Description Provides an implementation of the SMTP protocol using PEAR's Net_Socket class. Maintainers Chuck Hagenbuch <[email protected]> (lead) Jon Parise <[email protected]> (lead) Version 1.2.7 Release Date 2005-08-21 Release License PHP License Release State stable Release Notes The VRFY command now accepts 252 as a valid response code. (Bug 5083) Release Deps Package Net_Socket == Package Auth_SASL == (optional) Package.xml Version 1.0 Last Installed Version 1.2.3 Last Modified 2005-12-03