Probleme mail() sur VPS

Eléphanteau du PHP | 37 Messages

08 août 2014, 16:23

Bonjour a tous,
J'ai un probleme avec mon vps et la fonction mail()
Lorsque j'utilise un script avec la fonction mail() dedans, le mail n'arrive pas a destination et se stocke dans /var/spool/mail/root
Je voulais donc savoir comment remédier a ce problème
Merci de votre aide

ViPHP
ViPHP | 1996 Messages

08 août 2014, 16:47

Je ne suis pas spécialiste de cette partie mais qu'as-tu dans le php.ini à "sendmail_path" ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 37 Messages

08 août 2014, 16:54

J'ai ceci
[mail function]
; For Win32 only.
; http://www.php.net/manual/en/mail.configuration.php#ini.smtp
SMTP = localhost
; http://www.php.net/manual/en/mail.configuration.php#ini.smtp-port
smtp_port = 25

; For Win32 only.
; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-from
;sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path
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 =

; Add X-PHP-Originaiting-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =

Eléphanteau du PHP | 37 Messages

08 août 2014, 17:28

J'ai decouvert quelque chose d'autre, lorsque j'utilise ce script avec une adresse hotmail tout marche bien
<?php
$mail = '[email protected]'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
	$passage_ligne = "\r\n";
}
else
{
	$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========
 
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
 
//=====Définition du sujet.
$sujet = "Hey mon ami !";
//=========
 
//=====Création du header de l'e-mail.
$header = "From: \"WeaponsB\"<[email protected]>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <[email protected]>".$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.$message_txt.$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.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
 
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
?>
Mais lorsque ce n'est plus une adresse hotmail, le message ne s'envoie pas et se stockent donc sur le VPS

ViPHP
ViPHP | 1996 Messages

08 août 2014, 19:28

Que hotmail ? C'est bizarre...

si tu fais un var_dump($mail) . Ca donne quoi ?
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
 
//=====Envoi de l'e-mail.
var_dump($mail);
//mail($mail,$sujet,$message,$header);
//==========
?>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 37 Messages

08 août 2014, 19:59

ca donne ceci
string(21) "[email protected]"

ViPHP
ViPHP | 1996 Messages

08 août 2014, 22:16

Alors là...
Que te dis les log postfix ? (généralement /var/log/maillog ou /var/log/mail)
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

09 août 2014, 00:25

Il n'y a absolument rien dans les logs, le fichier maillog est toujours vide.
Rien ne s'ecrit dedans

Eléphanteau du PHP | 37 Messages

09 août 2014, 00:40

Erreur, j'ai poster le message en inviter, je n'avais pas vu que j'était deconnecter.
En tout cas c'est bien moi qui ai poster ceci

ViPHP
ViPHP | 1996 Messages

09 août 2014, 09:12

Rien dans les logs ? C'est pas normal. Tout est répertorié normalement.
Je ne sais pas sous quel Linux tu es mais si tu es sous un debian regarde dans le fichier /etc/postfix/main.cf
Tu devrais y avoir mail_spool_directory = /var/spool/mail (pour vérifier)

Ensuite les logs postfix (chez moi) sont stockés dans le fichier générale dans /var/log/syslog
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 37 Messages

09 août 2014, 11:46

Oui j'ai bien

Code : Tout sélectionner

#mail_spool_directory = /var/mail #mail_spool_directory = /var/spool/mail
Je n'ai par contre pas de dossier log dans var
Je suis sur CentOS

ViPHP
ViPHP | 1996 Messages

09 août 2014, 19:30

Bonjour,

Malheureusement, mes compétences s’arrêtent là.
Par contre tes deux lignes sont commentées (présence du # au début). Est ce normal ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 37 Messages

09 août 2014, 22:13

Je ne sais pas si c'est normal.
Bon bah merci comme même je vais essayer de chercher ailleurs :/

Petit nouveau ! | 1 Messages

13 août 2014, 11:04

y a-t-il des autres mesures utiles ?