J'ai installé Ubuntu 11.04, LAMP en utilisant tasksel.
Je trouve que PHP mail()
ne fonctionne pas.
Je suppose que je dois l'activer ou quoi? Comment faire ?
Meilleure réponse
Depuis le manuel de messagerie de php :
Exigences
Pour que les fonctions de messagerie soient
disponibles, PHP nécessite un système de messagerie installé
et fonctionnel. Le programme
à utiliser est défini par les
paramètres de configuration dans le fichier php.ini
.
Cela signifie que vous devez installer une sorte de serveur de messagerie et configurer php pour l'utiliser. Habituellement, ce serveur de messagerie est postfixé dans Ubuntu. Cependant, si le côté php que vous codez sera éventuellement stocké du côté d'un service d'hébergement (par exemple xmission), un serveur de messagerie y sera probablement déjà installé. Dans ce cas, testez simplement votre site en ligne plutôt qu'en local.
Si vous avez besoin de le tester sur votre propre système ou si vous voulez l'héberger sur votre propre serveur domestique, procédez comme suit :
Installation de Postfix
Installation :suffixe / sudo apt-get install postfix
Au cours du processus, il vous sera demandé dans quel mode vous souhaitez installer postfix. Il existe quatre modes possibles :
- Internet :Votre propre serveur de messagerie.
- Satellite :Un fournisseur de messagerie externe (par exemple Google) sera utilisé pour l'envoi et la réception du courrier. Le serveur ne recevra aucun courrier.
- Hôte intelligent :Mélange entre les deux. Le courrier est stocké localement mais envoyé via un fournisseur de messagerie externe.
- Local uniquement :Ne vous concernera pas. C'est un serveur de messagerie interne au système. Vous pouvez uniquement envoyer des e-mails d'utilisateur à utilisateur sur le système.
Le reste des options d'installation dépend de votre choix de cette configuration générale.
Vous choisirez très probablement une installation satellite. Cela signifie que le courrier sera envoyé à l'aide d'un fournisseur externe. En tant que serveur smtp (serveur de courrier sortant) vous devrez alors spécifier vos fournisseurs smtp. Le reste des options est explicite.
Configuration post-installation
La plupart des serveurs smtp nécessitent une authentification par mot de passe pour envoyer du courrier. Postfix devra donc connaître ce mot de passe. Il y a aussi des choses comme le cryptage à considérer (que vous devrez rechercher sur Google). Voici comment vous configurez postfix en utilisant l'authentification par mot de passe (sasl) :
-
Installer les modules libsasl2 et sasl2-bin en cliquant sur les icônes du centre de logiciels ou depuis le terminal en utilisant :
sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
-
Activez sasl-auth en ajoutant ces lignes à
/etc/postfix/main.cf
# add to /etc/postfix/main.cf smtp_sasl_auth_enable = yes smtp_sasl_security_options = noplaintext noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
-
Créez un fichier
/etc/postfix/sasl_password
avec une ligne comme :smtp.gmail.com [email protected]:USERPASSWORD
Remplacez le mot de passe, le nom d'utilisateur et l'adresse smtp réels.
-
Mettre à jour le suffixe :
sudo chmod 600 /etc/postfix/sasl_password # for safety of your smtp password sudo postmap hash:/etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical sudo /etc/init.d/postfix restart
Vous devrez peut-être contourner le bogue "autorisation refusée" par
chown postfix:postfix /etc/postfix
au préalable.
Cela devrait le faire dans la plupart des cas. Pourtant, certains fournisseurs smtp exigent une adresse spécifique comme expéditeur ou cryptage.
Connexe :l'interface PEAR::Mail pourrait également vous intéresser.
Gmail (et peut-être d'autres services) peut ne pas aimer que vous tentiez d'envoyer du courrier de cette façon car cela pourrait être considéré comme non sécurisé selon leurs normes et bloquerait votre tentative, c'est-à-dire que rien ne se passerait à l'écran ou quelque part de l'ensemble du processus bloquerait votre authentification. De plus, votre POP3 doit être activé.
Pour contrer cela, voir ici. (Si vous voulez être du bon côté, créez un compte Gmail factice)