[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: