Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur mail depuis apache/php

8 réponses
Avatar
Christophe PEREZ
[ déjà posté il y a 15 jours sur les 3 groupes qui pouvaient être
concernés, mais strictement aucune réponse, alors, je tente ici ]

Bonjour,

Depuis que j'ai migré mon serveur apache/php/postfix sous
mandrake 10 (venant de 9.1), les mails envoyés en php me donnent
systématiquement une erreur :

----------------------------------------------------------------
This is the Postfix program at host smtp.mon_domaine_local.

I'm sorry to have to inform you that your message could not be
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to <postmaster>

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The Postfix program

<unknown>: No recipients specified
----------------------------------------------------------------
Puis suit le mail en question.

Or, je parviens à envoyer ce mail sans problème via mon postfix par (par
exemple) la commande mail.
A priori, ça ne vient pas de mon script php puisque ce même script
fonctionne sans problème chez mon hébergeur.

Mais cela pourrait-il venir de la config php ?
A part le chemin de sendmail, je ne vois pas ce qu'on peut y préciser de
plus.

Quelque chose dans apache à modifier ? Je ne vois pas non plus quoi.

Quant à postfix, je ne vous pas ce que je pourrais y modifier puisque
l'envoi du mail par un autre biais fonctionne.

Merci d'avance pour toute suggestion.

--
Christophe PEREZ
Écrivez moi sans _faute !

8 réponses

Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

[ déjà posté il y a 15 jours sur les 3 groupes qui pouvaient être
concernés, mais strictement aucune réponse, alors, je tente ici ]

Bonjour,


Salut Christophe,

Depuis que j'ai migré mon serveur apache/php/postfix sous
mandrake 10 (venant de 9.1), les mails envoyés en php me donnent
systématiquement une erreur :

----------------------------------------------------------------
This is the Postfix program at host smtp.mon_domaine_local.

I'm sorry to have to inform you that your message could not be
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to <postmaster>
^^^^^^^^^^


Semble qu'il y est un petit problème de configuration, le domaine est absent
dans l'adresse mail.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The Postfix program

<unknown>: No recipients specified
----------------------------------------------------------------
Puis suit le mail en question.


Tu pourrais nous donner les en-têtes du mail en question ?

Or, je parviens à envoyer ce mail sans problème via mon postfix par (par
exemple) la commande mail.
A priori, ça ne vient pas de mon script php puisque ce même script
fonctionne sans problème chez mon hébergeur.


Ça ne veut pas dire que le script ne pose pas de problème. Il est peut être
quand même mal codé ou mal configuré. Tu pourrais nous donner le bout de
code qui concerne la partie envoie de mail ?

Mais cela pourrait-il venir de la config php ?
A part le chemin de sendmail, je ne vois pas ce qu'on peut y préciser de
plus.


Rien d'autre effectivement.

Quelque chose dans apache à modifier ? Je ne vois pas non plus quoi.


Non, rien à modifier à priori.

Quant à postfix, je ne vous pas ce que je pourrais y modifier puisque
l'envoi du mail par un autre biais fonctionne.


Tu peux toujours nous donner ton main.cf.

Merci d'avance pour toute suggestion.


De rien.

--
TiChou

Avatar
Christophe PEREZ
Le Mon, 27 Sep 2004 23:05:26 +0200, TiChou a écrit:

Semble qu'il y est un petit problème de configuration, le domaine est absent
dans l'adresse mail.


Ben oui, ça, je vois bien ;-)

Tu pourrais nous donner les en-têtes du mail en question ?


Bien sûr, un mail pour test :
Received: by smtp.novazur.fr (Postfix, from userid 72) id 7E42556032; Mon, 27 Sep 2004 22:59:43 -0400 (AST)
À:
Sujet: Stats Journalieres www.novazur.org 27/09/04
De:
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Message-Id:
Date: Mon, 27 Sep 2004 22:59:43 -0400 (AST)
Mime-Version: 1.0

Et si j'en voie un mail à , par la commande mail,
ça fonctionne.
novazur.org est un virtual host de mon apache.
Et il est déclaré dans mon main.cf de postfix, dans le mydestination

Ça ne veut pas dire que le script ne pose pas de problème. Il est peut être
quand même mal codé ou mal configuré.


Mal configuré, je veux bien, mais quand même, mon script n'a pas changé
quand j'ai migré en mdk 10.0, et il a toujours fonctionné autant sur ma
mdk 9.1 que chez mon hébergeur.
De plus, justement, je ne vois pas quoi configurer.

Tu pourrais nous donner le bout de code qui concerne la partie envoie de mail ?


Euh... tout bête,
mail(_WEBMASTER_,$titre,$texte,$from);

avec :
_WEBMASTER_ =
_NL= = "n"

$from = 'From: '._WEBMASTER_._NL_.'Content-Type: text/html; charset=iso-
8859-1'._NL_.'Content-Transfer-Encoding: quoted-printable'._NL_;

Quant à postfix, je ne vous pas ce que je pourrais y modifier puisque
l'envoi du mail par un autre biais fonctionne.


Tu peux toujours nous donner ton main.cf.


Ouais mais je suis sûr que ça va être sujet à de multitudes de
questions sur les domaines ça ;-)

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
default_privs = nobody
myhostname = smtp.novazur.fr
mydomain = novazur.fr
myorigin = $mydomain
mydestination = $myhostname, localhost, localhost.$mydomain, $mydomain, novazur.com, locamart.com, serveur.$mydomain, RL.novazur.fr, KanelXP.novazur.fr, JD.novazur.fr, novazur.org, magshare.org
unknown_local_recipient_reject_code = 450
mynetworks = 192.168.0.0/24, 127.0.0.0/8
relayhost = [smtp.wanadoo.fr]
sender_canonical_maps = hash:/etc/postfix/sender_canonical
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
default_transport = smtp
alias_maps = hash:/etc/postfix/aliases

mail_spool_directory = /var/spool/mail
mailbox_command = /usr/bin/procmail -Y -a $DOMAIN
luser_relay =

header_checks = regexp:/etc/postfix/header_checks
body_checks = regexp:/etc/postfix/body_checks
debug_peer_level = 2
debugger_command PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
delay_warning_time = 4
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.1.1/samples
readme_directory = /usr/share/doc/postfix-2.1.1/README_FILES
alias_database = hash:/etc/postfix/aliases
defer_transports = smtp
html_directory = /usr/share/doc/postfix-2.1.1/html

En regardant d'un peu plus prêt, je crois bien comprendre que c'est un pb
postfix (donc mon suivi original sur fcm était le bon) mais je ne vois
pas du tout ce que je dois modifier pour qu'il accepte les mails du
virtualhost novazur.org alors qu'avec la même config, cela fonctionnait
avant.


--
Christophe PEREZ
Écrivez moi sans _faute !


Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

Tu pourrais nous donner les en-têtes du mail en question ?


Bien sûr, un mail pour test :
Received: by smtp.novazur.fr (Postfix, from userid 72) id 7E42556032;
Mon, 27 Sep 2004 22:59:43 -0400 (AST)
À:
Sujet: Stats Journalieres www.novazur.org 27/09/04
De:
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Message-Id:
Date: Mon, 27 Sep 2004 22:59:43 -0400 (AST)
Mime-Version: 1.0


Ils sont bizarres tes en-têtes, c'est ceux affichés et reformatés par ton
client mail, pas ceux du mail « en question ».

Tu pourrais nous donner le bout de code qui concerne la partie envoie de
mail ?


Euh... tout bête,
mail(_WEBMASTER_,$titre,$texte,$from);


Curieux l'utilisation d'une constante, mais pourquoi pas. Essaye malgré tout
de remplacer temporairement dans cette fonction mail la constante
_WEBMASTER_ par la chaine "".

avec :
_WEBMASTER_ =
_NL= = "n"


J'image que tu as mal recopié et que dans le script il y a bien la présence
des (doubles) quotes dans la constante _WEBAMASTER_ et que chaque
instruction se termine bien par un point-virgule.

Tu peux toujours nous donner ton main.cf.



[...]

luser_relay =


Curieux que le mail vu avec le recipient inconnu ne soit pas envoyé à cette
adresse.

[...]

sendmail_path = /usr/sbin/sendmail.postfix


Dans ton fichier php.ini, celui utilisé par le module PHP de Apache, tu as
bien le même chemin dans la variable sendmail_path ? D'ailleurs, pour le
chemin est /usr/sbin/sendmail.postfix et non pas simplement
/usr/sbin/sendmail ?

--
TiChou


Avatar
Christophe PEREZ
Le Tue, 28 Sep 2004 16:13:47 +0200, TiChou a écrit:

Ils sont bizarres tes en-têtes, c'est ceux affichés et reformatés par ton
client mail, pas ceux du mail « en question ».


Oui, c'est vrai.
voici l'original, enfin, plutôt les entêtes du courrier joint dans le
courrier de postmater :
Received: by smtp.novazur.fr (Postfix, from userid 72)
id 7E42556032; Mon, 27 Sep 2004 22:59:43 -0400 (AST)
To:
Subject: Stats Journalieres www.novazur.org 27/09/04
From:
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Message-Id:
Date: Mon, 27 Sep 2004 22:59:43 -0400 (AST)


Mais voici un nouvel exemple entier du mail reçu par postmaster lors d'un
simple test php mail('','test de message par la
fonction php mail','ceci est le corps du message test');

----------------------------------------------------------------------
From MAILER-DAEMON Tue Sep 28 18:44:52 2004
Return-Path: <>
X-Original-To:
Delivered-To:
Received: by smtp.novazur.fr (Postfix)
id 97BEA56041; Tue, 28 Sep 2004 18:44:52 -0400 (AST)
Date: Tue, 28 Sep 2004 18:44:52 -0400 (AST)
From: (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To:
MIME-Version: 1.0
Content-Type: multipart/report; report-typeÞlivery-status;
boundary="9275356033.1096411492/smtp.novazur.fr"
Message-Id:
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on serveur.novazur.fr
X-Spam-Level:
X-Spam-Status: No, hits=-95.7 required=5.0 tests=AWL,BAYES_00,
MSGID_FROM_MTA_SHORT,USER_IN_WHITELIST autolearn=no version=2.63
Status: O
X-Status:
X-Keywords:
X-UID: 12320

This is a MIME-encapsulated message.

--9275356033.1096411492/smtp.novazur.fr
Content-Description: Notification
Content-Type: text/plain

This is the Postfix program at host smtp.novazur.fr.

I'm sorry to have to inform you that your message could not be
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to <postmaster>

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The Postfix program

<unknown>: No recipients specified

--9275356033.1096411492/smtp.novazur.fr
Content-Description: Delivery report
Content-Type: message/delivery-status

Reporting-MTA: dns; smtp.novazur.fr
X-Postfix-Queue-ID: 9275356033
X-Postfix-Sender: rfc822;
Arrival-Date: Tue, 28 Sep 2004 18:44:52 -0400 (AST)

Final-Recipient: rfc822; unknown
Action: failed
Status: 5.0.0
Diagnostic-Code: X-Postfix; No recipients specified

--9275356033.1096411492/smtp.novazur.fr
Content-Description: Undelivered Message
Content-Type: message/rfc822

Received: by smtp.novazur.fr (Postfix, from userid 72)
id 9275356033; Tue, 28 Sep 2004 18:44:52 -0400 (AST)
To:
Subject: test de message par la fonction php mail
Message-Id:
Date: Tue, 28 Sep 2004 18:44:52 -0400 (AST)
From: (system user for apache-conf)

ceci est le corps du message test

--9275356033.1096411492/smtp.novazur.fr--
----------------------------------------------------------------------

Curieux l'utilisation d'une constante, mais pourquoi pas.


C'est un choix ;-)

Essaye malgré tout
de remplacer temporairement dans cette fonction mail la constante
_WEBMASTER_ par la chaine "".

avec :
_WEBMASTER_ =
_NL= = "n"


J'image que tu as mal recopié et que dans le script il y a bien la présence
des (doubles) quotes dans la constante _WEBAMASTER_ et que chaque
instruction se termine bien par un point-virgule.


Ni l'un ni l'autre, le "=" n'était pas le égal du php, tout simplement.
Je résumais là car en fait ce sont bien évidemment des define(); bien
comme il faut ;-)

luser_relay =


Curieux que le mail vu avec le recipient inconnu ne soit pas envoyé à cette
adresse.


N'est-ce pas !
Surtout que comme déjà dit plusieurs fois, ça a toujours fonctionné
comme ça sur mon ancien serveur, et qu'en plus un alias pour webmaster
existe.

sendmail_path = /usr/sbin/sendmail.postfix


Dans ton fichier php.ini, celui utilisé par le module PHP de Apache, tu as
bien le même chemin dans la variable sendmail_path ?


sendmail_path = /usr/sbin/sendmail

et :
# ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 aoû 18 10:02 /usr/sbin/sendmail -> /etc/alternatives/mta*
# ls -l /etc/alternatives/mta
lrwxrwxrwx 1 root root 26 aoû 19 14:17 /etc/alternatives/mta -> /usr/sbin/sendmail.postfix*

Donc à priori pas de problème là non plus.

D'ailleurs, pour le
chemin est /usr/sbin/sendmail.postfix et non pas simplement
/usr/sbin/sendmail ?


Je ne sais pas, config d'origine de la mandrake 10.0 comme ça.
Le packageur a du avoir peur qu'un autre mta soit déclaré et prenne
l'alias pour lui ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !


Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

[...]

Essayes de commenter dans le fichier de configuration Postfix main.cf les
lignes suivantes recipient_canonical_maps et luser_relay.
Essayes aussi de voir ce qu'indique les logs de Postfix lors de l'envoie du
mail et s'il faut augmente le niveau des logs avec l'option
debug_peer_level.

--
TiChou
Avatar
Christophe PEREZ
Le Wed, 29 Sep 2004 01:41:44 +0200, TiChou a écrit:

Essayes de commenter dans le fichier de configuration Postfix main.cf les
lignes suivantes recipient_canonical_maps et luser_relay.


Ne change rien.

Essayes aussi de voir ce qu'indique les logs de Postfix lors de l'envoie du
mail et s'il faut augmente le niveau des logs avec l'option
debug_peer_level.


/var/log/mail/info donne :

Sep 28 20:57:59 serveur postfix/pickup[6893]: D36645603D: uidr from=<apache>
Sep 28 20:57:59 serveur postfix/cleanup[6901]: D36645603D: message-id=<200409290

Sep 28 20:57:59 serveur postfix/cleanup[6901]: D36645603D: to=<unknown>, relay=n
one, delay=0, status=bounced (No recipients specified)
Sep 28 20:58:00 serveur postfix/cleanup[6905]: 0C8B456041: message-id=<200409290

Sep 28 20:58:00 serveur postfix/nqmgr[6895]: 0C8B456041: from=<>, size51, nrc
pt=1 (queue active)
Sep 28 20:58:00 serveur spamd[4663]: connection from localhost [127.0.0.1] at po
rt 48127
Sep 28 20:58:00 serveur spamd[6910]: info: setuid to chris succeeded
Sep 28 20:58:00 serveur spamd[6910]: processing message <20040929005800.0C8B4560
for chris:501.
Sep 28 20:58:00 serveur spamd[6910]: clean message (-95.7/5.0) for chris:501 in
0.8 seconds, 2018 bytes.
Sep 28 20:58:01 serveur postfix/local[6906]: 0C8B456041: to=,
orig_to=, relay=local, delay=1, status=sent (delivered to com
mand: /usr/bin/procmail -Y -a $DOMAIN)


Merci pour le mal que tu te donnes (une fois de plus)...

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

sendmail_path = /usr/sbin/sendmail.postfix


Dans ton fichier php.ini, celui utilisé par le module PHP de Apache, tu
as bien le même chemin dans la variable sendmail_path ?


sendmail_path = /usr/sbin/sendmail


Il manque deux options, surtout une qui à mon avis est à l'origine depuis le
début de ton problème...

Soit tu commentes la ligne sendmail_path et sa valeur par défaut sera
"sendmail -t -i", ou soit tu la définis comme suit :

sendmail_path = "/usr/sbin/sendmail -t -i"

L'option '-t' c'est l'option qui indique au wrapper sendmail de scanner les
en-têtes du mail pour récupérer dans les champs To, Cc et Bcc le ou les
destinataires du mail.

--
TiChou



Avatar
Christophe PEREZ
Le Wed, 29 Sep 2004 14:43:13 +0200, TiChou a écrit:

sendmail_path = "/usr/sbin/sendmail -t -i"


TiChou, tu es un bon !

Parfaitement vu.

Mais c'est quand même extra-ordinaire que je n'ai pas eu ce problème
sous mdk 9.1 avec exactement la même config.

Merci beaucoup.


--
Christophe PEREZ
Écrivez moi sans _faute !