Pages : 1
#1 Le 07/04/2010, à 15:21
- Damien_69
PHP - Echec de l'envoi de mails - Sendmail
Bonjour,
J'ai installé une Ubuntu Server dans le cadre de mon stage réseau (BTS). J'ai installé divers services: ssh apache php5 mysql portsentry fail2ban, que j'ai configuré et jusque là tout fonctionne ou presque.
J'aimerais faire fonctionner l'envoi de mail avec php mais je ne réussi pas. Je m'explique:
J'ai récupéré un mail.php que l'un des développeurs, travaillant avec moi, m'a fourni.
Bien entendu je l'ai modifié afin qu'il soit applicable à mon cas. De plus, il a été testé sur une machine Windows et celui-ci fonctionne.
Le voici:
<html>
<form method="POST" action="#">
<input type="submit" value="Valider" name="Valider" />
</form>
<html>
<?php
if(isset($_POST['Valider']))
{
$text="coucou";
$thtml="test";
$mail="damien.beraud@gmail.com"; # mon adresse mail
//on regarde si l'adresse email appartient a un domaine particulier pour un affichage propre
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui bugs
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Définition du sujet
$sujet = "Inscription";
//=========
//=====Création du header de l'e-mail
$header = "From: \"Axantech\"<axantech@ax.com>".$passage_ligne;
$header.= "Reply-to: \"No reply\" <axantech@ax.com>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$text.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$thtml.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail
//si l'email est parti
if(mail($mail,$sujet,$message,$header))
{
echo "ça marche !";
}
else
//sinon message d'erreur
{
echo '<h3>Le message n\'a pu être envoyé</h3>';
}
}
?>
Sur linux voici comment j'ai configuré mon php.ini dans /etc/php5/apache2/
[mail function]
; For Win32 only.
SMTP = smtp.free.fr
smtp_port = 25; For Win32 only.
;sendmail_from = info@axantech.com; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
Avec cet configuration j'obtiens la réponse négative: le message n'a pas peu être envoyé.
Je suis un peu désespéré, cela fait maintenant plus d'une semaine que je regarde des tutoriels des how-to etc. J’ai même installé un MTA (ssmtp) mais encore une fois cela échoue. La seule différence est qu'avec ssmtp, en ligne de commande, je réussis à envoyer des mails, ce qui n'est pas le cas sans ssmtp.
De plus, j'ai convaincu très difficilement le responsable de passer sur Linux qui plus est Ubuntu, mais maintenant, avec les difficultés rencontrées, je suis soumis à forte pression de ça part.
Merci par avance.
Bonne journée.
Cordialement,
Damien BERAUD
Hors ligne
#2 Le 07/04/2010, à 16:03
- Xarkam
Re : PHP - Echec de l'envoi de mails - Sendmail
Si tu a eu une erreur avec sendmail, il y a des log
Il te faut juste savoir comment trouver le message qui dit ce qui ne va pas.
Je vois que tu utilise le smtp de free mais je ne vois pas de méthode d'authentification.
Dernière modification par Xarkam (Le 07/04/2010, à 16:04)
Osames Manager
---
Asus Rampage V Extrême | Intel i7 5820K | Corsair 16GB DDR4 | NVIDIA GeForce 770GTX
Utilisateur d'Ubuntu, Debian, et Windows
Hors ligne
#3 Le 07/04/2010, à 16:21
- yohann
Re : PHP - Echec de l'envoi de mails - Sendmail
ssh apache php5 mysql portsentry fail2ban,
je ne vois pas de MTA la dedans...
je te conseille ssmtp qui est un relais vers un smtp facile a configurer.
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#4 Le 07/04/2010, à 18:50
- Damien_69
Re : PHP - Echec de l'envoi de mails - Sendmail
Merci de vos réponses.
Pour Yohann:
Je me suis apparemment mal exprimé. J'ai installé un MTA au nom de ssmtp, mais voyant que ce dernier ne résolvait pas mon problème je l'ai désinstallé, malgré tous, les fichiers de conf sont toujours présents.
Pour Xarkam:
J'avais regardé dans les fichiers de log et je n'avais pas trouvé d'information. Mais c'est certainement parce que je ne regarde pas au bon endroit.
Lorsque j'utilisais ssmtp, dans /var/log/mail.err j'avais des informations, si vous me le conseillé, je peux effectivement revenir avec cette configuration, à savoir:
ssmtp installé et l'envoi de mail en ligne de commande fonctionnelle.
Bonne soirée et merci encore.
Hors ligne
#5 Le 08/04/2010, à 08:22
- yohann
Re : PHP - Echec de l'envoi de mails - Sendmail
je suis pas absolumenet certain de ce que je vais dire mais il me semble que php ne gere pas directement l'envoie des mails sur linux en tout cas (d'ou le win32 only au dessus des parametres que tu utilise pour envoyer des mails).
il faut donc a mon avis réinstaller ssmtp, puis vérifier que le lien symbolique /usr/sbin/sendmail pointe bien vers lui.
ensuite il faut le configurer (en suivant la doc de ubuntu-fr) et enfin si ça ne fonctionne toujours pas poster ici entre 2 balise code tail /var/log/apache/error_log
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#6 Le 08/04/2010, à 10:40
- Damien_69
Re : PHP - Echec de l'envoi de mails - Sendmail
J'ai réussi tout simplement en installant exim4.
Merci encore à vous.
Hors ligne