Re: Exim + mail
J'utilise cette méthode pour une gestion mutualisée.
Le Return-Path: ne peut pas être récrit directement avec une règle donc je
biaise. Le Return-Path: définie dans php n'est jamais repris (???). Je n'ai
pas aussi trouvé comment reprendre le From: directement.
Rewrite Flags:
E rewrite all envelope fields
F rewrite the envelope From field
T rewrite the envelope To field
b rewrite the Bcc: header
c rewrite the Cc: header
f rewrite the From: header
h rewrite all headers
r rewrite the Reply-To: header
s rewrite the Sender: header
t rewrite the To: header
- donc mettre cette règle dans le bloc de REWRITE de exim.conf :
www-data@* $reply_address Ffr
Par sécurité, je pense qu'il est mieux de remplacer le * par le nom de la
machine. Ne jamais faire un rewrite du sender (s), sinon tout utilisateur de
php pourra se faire passer pour n'importe qui.
- quand on programme du php ou tout ce qui tourne sous www-data, il est
possible de construire le header de mail en définissant le Reply-To: et le
X-Sender: pour plus de finesse. Le Return-Path: quand a lui est pris sur le
From: ou le Reply-To: si il est défini.
<?php
/* recipients */
$recipient .= "Stephane Leclerc <sleclerc@aweb.fr>" . ", " ;
$recipient .= "toto@aweb.fr";
/* subject */
$subject = "Test";
/* message */
$message = "Ceci est un message de test\n";
/* additional header pieces for errors, From cc's, bcc's, etc */
$headers .= "From: sleclerc <sleclerc@aweb.fr>\n";
$headers .= "X-Sender: <xsender@aweb.fr>\n";
$headers .= "X-Mailer: PHP\n"; // mailer
$headers .= "X-Priority: 1\n"; // Urgent message!
$headers .= "Reply-to: <replyto@aweb.fr>\n";
$headers .= "Return-Path: <returnpath@aweb.fr>\n";
$headers .= "cc:sleclerc@actionweb.fr\n"; // CC to
$headers .= "bcc:sleclerc@actionweb.fr, sleclerc@actionweb.fr\n"; // BCCs to
/* and now mail it */
mail($recipient, $subject, $message, $headers);
?>
Si tu regardes dans les logs exim, tu verras que le mail par bien avec le
bon header.
2001-09-22 10:29:00 15ki9k-0002He-00 <= replyto@aweb.fr U=www-data P=local
2001-09-22 10:29:37 15ki9k-0002He-00 => sleclerc@aweb.fr R=smarthost
2001-09-22 10:29:37 15ki9k-0002He-00 -> toto@aweb.fr R=smarthost
2001-09-22 10:29:37 15ki9k-0002He-00 -> sleclerc@actionweb.fr R=smarthost
2001-09-22 10:29:37 15ki9k-0002He-00 Completed
Et on obtient ceci si il y a un retour :
--------------------------
This message was created automatically by mail delivery software (Exim).
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
toto@aweb.fr
SMTP error from remote mailer after RCPT TO:<toto@aweb.fr>:
host mail.isdnet.net [194.149.160.8]: 550 <toto@aweb.fr>... User unknown
------ This is a copy of the message, including all the headers. ------
Return-path: <replyto@aweb.fr>
Received: from adsl163-97.mangoosta.fr ([217.11.163.97] helo=actionweb.fr)
by actionweb.fr with asmtp (Exim 3.31 #1 (Debian))
id 15khrT-0001H2-00; Sat, 22 Sep 2001 10:10:07 +0200
Received: from www-data by actionweb.fr with local (Exim 3.32 #1 (Debian))
id 15ki9k-0002He-00; Sat, 22 Sep 2001 10:29:00 +0200
To: Stephane Leclerc <sleclerc@aweb.fr>, toto@aweb.fr
Subject: Test
From: sleclerc <sleclerc@aweb.fr>
X-Sender: <xsender@aweb.fr>
X-Mailer: PHP
X-Priority: 1
Reply-to: <replyto@aweb.fr>
cc:sleclerc@actionweb.fr
Message-Id: <E15ki9k-0002He-00@actionweb.fr>
Sender: www-data <www-data@actionweb.fr>
Date: Sat, 22 Sep 2001 10:29:00 +0200
--------------------------
Et voilà.
Pour les process lancés en shell sous un UID, c'est la même histoire dès
qu'il faut gérer les retours (donc faire un uid@ $reply_address Ffr si non
rendre indépendant les retours du uid).
Si quelqu'un a quelque chose de plus simple et de plus efficace, je prend.
Stef...
> Je suis moi aussi en train de configurer l'envoi de mail via exim. Cela
> marche parfaitement, jusqu'à l'envoi de mail via apache/php (fonction
> mail()). En effet, 2 lignes me "gènent" dans le header des mails envoyés :
>
> Return-Path: <www-data@sport-net.org>
> Sender: www-data <www-data@sport-net.org>
>
> www-data n'est ici que le username du processus apache. Certes, mais mon
> fichier /etc/email-adresses contient pourtant :
>
> www-data: niemann@sport-net.org
>
> Y-a-t-il un moyen d'alimenter ces champs d'une manière autre que de modifier
> le username du processus apache ?
..........................................................
. Linux - Debian - php4 - Apache - MySQL - Infogerance .
. email: info@actionweb.fr - http://www.actionweb.fr .
. Tel: (0)141 906 100 - Fax: (0)141 906 101 .
..........................................................
Reply to: