2 votes

Transférer tous les e-mails d'un domaine vers un seul compte ou fichier, mais délivrer correctement les autres domaines.

J'ai un serveur Linux qui utilise Postfix pour le courrier électronique. Il est sur une adresse IP dynamique et j'utilise le paramètre "relayhost" pour envoyer le courrier sortant à travers un tunnel ssh vers un autre serveur sur une adresse IP statique et de là, il est envoyé dans le monde réel. Cela fonctionne bien depuis 1998 environ.

Je développe actuellement un logiciel pour un client, qui envoie des courriels à diverses personnes de l'organisation de ce client en fonction des informations contenues dans une base de données. Pour mes premiers tests, j'ai créé de fausses personnes qui avaient toutes des adresses électroniques du type ptomblin+client1@{mydomain}.com, qui ont bien fonctionné et m'ont envoyé tous les courriels. Mais maintenant, je travaille avec une base de données réelle, et toutes les adresses électroniques correspondent à des personnes réelles de l'organisation du client. Je n'ai pas particulièrement envie d'envoyer des courriels à ces personnes pour leur dire que l'accès au système qu'elles ont demandé a été accordé, et j'aimerais donc pouvoir rediriger tous les courriels destinés au domaine de ce client vers mon adresse électronique ou vers un fichier.

3voto

Si je comprends bien, vous voulez que tout le courrier destiné à exemple.com soit livré à votre adresse de courrier ou à un fichier, au lieu d'être transféré au serveur spécifié dans relayhost :

étape 1 : Ajouter exemple.com à mydestination dans main.cf pour que le courrier destiné à example.com soit livré localement.

étape 2 : Configurez un catchall pour exemple.com et envoyez tous les e-mails à votre adresse e-mail ou à un fichier. Vous pouvez par exemple utiliser postfix pcre pour y parvenir.

Etape 2 élargie

L'utilisation de postfix pcre n'est qu'un moyen parmi d'autres d'atteindre cet objectif. Selon à ce tutoriel de garisson :

  1. Créer un utilisateur local mylocaluser et sa boîte aux lettres ou maildir.

  2. Créez un fichier nommé aliases-pcre avec le contenu :

    /@example\\.com$/ mylocaluser

    ajoutez les lignes suivantes à main.cf (si main.cf est dans /etc/postfix) :

    alias_database = hash:/etc/postfix/aliases
    alias_maps = hash:/etc/postfix/aliases, pcre:/etc/postfix/aliases-pcre
  3. Redémarrer postfix

Maintenant, tout le courrier destiné à *@example.com doit aller dans la boîte aux lettres/maildir de mylocaluser.

Encore une fois, il ne s'agit que d'un exemple. Vous pouvez utiliser toute autre méthode qui correspond le mieux à vos besoins. J'ai tendance à utiliser souvent pcre parce qu'il permet des regexp un peu plus complexes.


Cependant, la solution ci-dessus ne fonctionnerait pas car vous avez besoin d'un domaine virtuel.

Voici un exemple de configuration minimale :

(main.cf)
alias_database = hash:/etc/aliases
local_recipient_maps = 
relayhost = myotherserver.example.com
virtual_alias_maps = pcre:/etc/postfix/aliases-pcre
virtual_alias_domains = example.com
mydestination = localhost

Fichier /etc/postfix/aliases-pcre

/@example\.com$/ somelocaluser

0 votes

Pouvez-vous m'expliquer comment réaliser l'étape 2, ou m'indiquer une documentation à ce sujet ?

0 votes

Non, il n'aime toujours pas la "partie locale" - J'envoie des e-mails à paul.tomblin@mydomain.com et il les renvoie avec "unknown user paul.tomblin". Les e-mails adressés à "ptomblin@mydomain.com" me parviennent, donc je sais que la partie "mydestination" fonctionne.

0 votes

J'ai testé mon fichier PCRE en utilisant postmap -q et il correspond à paul.tomblin@mydomain.com mais pas à paul.tomblin@gmail.com, mais je soupçonne que le domaine a déjà été supprimé au moment où local(8) reçoit l'adresse.

2voto

dindenver Points 1600

Ok, Eric m'a rapproché du bon chemin mais pas tout à fait. Voilà ce que j'ai fait :

  1. Dans /etc/postfix/main.cf :

    virtual_alias_domains = example.com
    virtual_alias_maps = regexp:/etc/postfix/virtual_alias
  2. Dans /etc/postfix/virtual_alias

    /@example\.com/ ptomblin

Un postfix reload plus tard et j'étais parti pour les courses. (Au fait, vous n'avez pas besoin de faire postmap sur les fichiers d'expressions régulières, seulement les hashs)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X