Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile
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.