web-dev-qa-db-fra.com

Exim: changement d'adresse de l'expéditeur lors de l'envoi de mails de réseau local

Nous avons une configuration eximale de travail sur un site, où les utilisateurs peuvent envoyer et recevoir des mails. Nous essayons de configurer un serveur pour envoyer des avertissements et des erreurs à l'aide d'un courrier électronique à une adresse en dehors du réseau local.

Le problème est:

Le programme qui envoie les mails les envoie à l'aide du nom d'utilisateur qu'il exécute sous et le nom d'hôte local du serveur. Cela cause les mails d'avoir un émetteur de format: [email protected]. Exim envoie ces courriers au serveur SMTP de l'ISP, qui rejette les courriers à mesure qu'elles disposent d'un expéditeur illégal ou d'une onduleur (l'adresse interne).

Je pense que je dois configurer Exim pour réécrire l'expéditeur lorsque:

  • le domaine de l'expéditeur est sur le réseau local
  • le domaine du récepteur est en dehors du réseau local

J'ai essayé de définir une sorte de réécriture dans la configuration exim, mais n'a pas réussi à le faire fonctionner. Je montrerais ce que j'ai essayé, mais j'ai manqué de temps sur la dernière visite sur le site et je devais revenir à la version originale de perdre tous les changements que j'ai essayés.

8
Esa Varemo
begin rewrite
[email protected]   [email protected]   SFfrs

Les drapeaux ont les significations suivantes:

  1. S - faire toutes la réécriture à l'heure SMTP. Cela signifie que tous les drapeaux suivants sont effectués immédiatement comme les données qu'elles s'appliquent à l'arrivée, non retardée avant la suite.
  2. F - Réécrivez l'enveloppe du champ.
  3. f - Réécrivez le champ de l'en-tête.
  4. r - Réécrivez le champ de réponse à: en-tête.
  5. s - Réécrivez le champ Sender-à: Hauteur.

Lire chapitre 31 de la spécification exim pour plus de détails sur la réécriture des messages

9
Kondybas

Le fichier /etc/email-addresses devrait gérer le problème. Ceci est une partie standard de la distribution exim. Vous devrez configurer un enregistrement pour chaque utilisateur de l'utilisateur local.

Essayez une ligne à /etc/email-addresses Comme:

 myapp:   [email protected]

Sur votre serveur MX ajoutez un alias comme:

 donotreply:    :blackhole:

Utiliser un Reply-to: En-tête pour permettre au destinataire de répondre au message.

Le fichier /etc/email-addresses est utilisé le code de réécriture suivant, qui devrait être au début de la section rewrite du fichier de configuration.

*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
                  {$value}fail}" Ffrs
10
BillThor

/etc/email-addresses est pratique lorsque vous n'avez besoin que d'associer ne Adresse électronique par nom d'utilisateur. Toutefois, si votre utilisateur doit envoyer des courriels avec plusieurs adresses, vous devrez modifier /etc/email-addresses Chaque fois, et vous finirez inévitablement d'utiliser la mauvaise adresse.

Une autre approche consiste à envoyer le courrier électronique à l'aide de exim4 commande et son -f Option:

$ cat email|/usr/sbin/exim4 -f [email protected] [email protected]

Notez que pour le -f Option de travail, vous avez besoin que votre utilisateur soit dans les utilisateurs de confiance d'EXIM ou EXIM pour l'accepter comme émetteur non approuvé autorisé.

Dans mon cas, ce dernier était par défaut, grâce à cette fauve sauvage en /etc/exim4/conf.d/main/02_exim4-config_options:

untrusted_set_sender = *

L'autre solution consiste à ajouter la ligne suivante en /etc/exim4/conf.d/main/00_local_settings (en supposant la configuration divisée d'EXIM, et à la créer s'il n'existe pas déjà):

MAIN_TRUSTED_USERS = yourusername

Les deux options ont besoin d'un rechargement de la configuration d'EXIM. Sous Debian:

# dpkg-reconfigure exim4-config
1