Pages : 1
#1 Le 11/11/2005, à 09:56
- marcounet
[Résolu]Config PHP + Postfix : nom de l'expéditeur
Bonjour,
Sur un serveur Hoary, j'essaie d'envoyer un email avec PHP. L'installation de PHP et Postfix par défaut n'a pas été modifiée. Dans /etc/postfix/main.cf j'ai renseigné la ligne relayhost comme ceci :
$ cat main.cf
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
myhostname = localhost.localdomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, localhost.localdomain, localhost
relayhost = relay.skynet.be
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
J'ai bien sûr redémarré le service postfix.
Dans mon script PHP je fais ceci :
$to = "marcleb1@yahoo.com";
$subject = "Test d'email 10";
$body = "Ceci est un email de test";
$headers = "From: <marclebrun@skynet.be>\r\nReply-To: <marclebrun@skynet.be>";
$result = mail($to, $subject, $body, $headers);
Et quand j'exécute je vois apparaître ceci dans le fichier /var/log/mail.log :
Nov 11 09:48:51 localhost postfix/pickup[22197]: 6158989EC3: uid=33 from=<www-data>
Nov 11 09:48:51 localhost postfix/cleanup[22217]: 6158989EC3: message-id=<20051111084851.6158989EC3@localhost.localdomain>
Nov 11 09:48:51 localhost postfix/qmgr[22198]: 6158989EC3: from=<www-data@localhost.localdomain>, size=368, nrcpt=1 (queue active)
Nov 11 09:48:51 localhost postfix/smtp[22219]: 6158989EC3: to=<marcleb1@yahoo.com>, relay=relay.skynet.be[195.238.3.128], delay=0, status=bounced (host relay.skynet.be[195.238.3.128] said: 553 5.1.8 <www-data@localhost.localdomain>... Domain of sender address www-data@localhost.localdomain does not exist (in reply to MAIL FROM command))
Nov 11 09:48:51 localhost postfix/cleanup[22217]: A489189EA2: message-id=<20051111084851.A489189EA2@localhost.localdomain>
Nov 11 09:48:51 localhost postfix/qmgr[22198]: A489189EA2: from=<>, size=2440, nrcpt=1 (queue active)
Nov 11 09:48:51 localhost postfix/qmgr[22198]: 6158989EC3: removed
Nov 11 09:48:51 localhost postfix/local[22221]: A489189EA2: to=<www-data@localhost.localdomain>, relay=local, delay=0, status=sent (delivered to mailbox)Nov 11 09:48:51 localhost postfix/qmgr[22198]: A489189EA2: removed
Apparament Postfix utilise l'utilisateur sous lequel Apache (et PHP) tourne pour donner au serveur le champ FROM, malgré que j'utilise un header "From: <xxxx>" dans le script PHP. Et bien sûr le serveur n'accepte pas <www-data@localhost.localdomain>.
Je suis bloqué, je fais des recherches depuis ce matin mais je ne trouve pas grand chose pour avancer. Quelqu'un aurait-il une idée ?
Merci
Bonne journée.
Dernière modification par marcounet (Le 12/11/2005, à 10:01)
Marcounet des Brumes
Hors ligne
#2 Le 11/11/2005, à 17:20
- Oustédaisse
Re : [Résolu]Config PHP + Postfix : nom de l'expéditeur
Je pense bien que cela vient de la directive
myhostname = localhost.localdomain
dans le fichier de conf de Postfix.
Il faut mettre un nom de domaine valide à la place.
Si tu n'en a pas, tu as toujours la possibilité de forger un From dans ton script PHP d'envoi.
Dernière modification par Oustédaisse (Le 11/11/2005, à 17:21)
Hors ligne
#3 Le 11/11/2005, à 20:14
- marcounet
Re : [Résolu]Config PHP + Postfix : nom de l'expéditeur
Un From: dans le script PHP j'ai déjà fait (voir plus haut) mais ça ne fonctionne pas.
Je vais essayer de changer myhostname.
Merci.
Marcounet des Brumes
Hors ligne
#4 Le 12/11/2005, à 10:00
- marcounet
Re : [Résolu]Config PHP + Postfix : nom de l'expéditeur
J'ai trouvé.
D'une part dans /etc/postfix/main.cf j'ai mis ceci :
myhostname = gaston.marclebrun.dyndns.org
mydomain = marclebrun.dyndns.org
myorigin = /etc/mailname
mydestination = marclebrun.dyndns.org, localhost
Puis, comme myorigin est sur /etc/mailname, j'ai éditer ce fichier qui contenait localhost.localdomain et c'est lui que postfix utilisait pour envoyer le nom d'expéditeur au serveur. J'ai donc remplacé le contenu de /etc/mailname par ce qu'il y a dans myhostname.
Puis j'ai redémarré Postfix.
Cependant, dans le script PHP on peut forcer le nom d'expéditeur en mettant dans le dernier paramètre "From: GrosBoudin <grosboudin@viandelles.fr>" par exemple...
Comment on indique que c'est résolu ?
Marcounet des Brumes
Hors ligne
#5 Le 20/11/2005, à 11:41
- brouits
Re : [Résolu]Config PHP + Postfix : nom de l'expéditeur
même si tu met une adresse moi@domaine.tld dans les headers du mail de la fonction mail() de php, cela ne changera rien car c'est un header de MAIL et non pas un header d'ENVELOPPE. Le header d'enveloppe est mis par postfix (ou autre sendmail) en fonction du domaine déclaré dans la conf. ce header est un header SMTP 'mail from:', juste après le 'helo' qui, lui aussi contient le domaine configuré. Donc, c'est normal que php ne puisse rien faire.
Pages : 1