3 votes

Exim4: Courrier sortant Catchall, permettre uniquement à quelques domaines de passer sur un serveur de développement

Je gère un tas de serveurs de développement et de mise en scène Debian (v.6-8). La configuration actuelle d'exim4 ressemble à ceci :

  • Il n'y a pas de courrier entrant sur les serveurs (aucune connexion wan)
  • Les courriers sortants sont envoyés via un smarthost (ceci fonctionne actuellement)

Étant donné que la fonctionnalité d'email des serveurs de mise en scène et de développement sera testée via des applications web et qu'il y a des adresses email de scénarios réels configurées dans nos applications web, La configuration que je souhaite atteindre est la suivante :

  • Tous les courriers sortants devraient être redirigés par une instruction catchall vers une seule adresse email, par exemple devmail@1234oursmarthost.com
  • Tous les courriers sortants, qui contiennent les domaines de nos entreprises, comme *@example.com et *@foo.com doivent contourner la règle catchall.

Le tutoriel qui se rapproche le plus de mon objectif est celui-ci, même s'il utilise la stratégie opposée : Autoriser tous les expéditeurs et refuser un expéditeur.

https://serverfault.com/a/577007/322673

Toute aide est vraiment appréciée, car je vais devenir fou avec la syntaxe de configuration d'exim.

J'ai parcouru énormément d'exemples de configuration ces derniers jours, mais aucun ne correspond à mon cas d'utilisation.

3voto

OliviervdAkker Points 55

Au fur et à mesure qu'Exim traite les courriers dans l'ordre spécifié dans la section des routeurs, Je suppose que cela peut être réalisé avec les règles suivantes. Assurez-vous de placer la règle pour les domaines spéciaux en premier, puis les règles catch-all.

# routage basé sur le domaine de l'expéditeur
router_for_special_domain_sender:
     driver = dnslookup
     senders =  *@example.com 
     transport = remote_smtp
     no_more 

# routage basé sur le domaine du destinataire
router_for_special_domain_reciepints:
     driver = dnslookup
     domains =  example.com 
     transport = remote_smtp
     no_more 

catch_all_outgoing:
     driver = redirect
     data = catchallemail@example.com

Conformément à la documentation d'Exim :

domains

Si l'option domains est définie, le domaine de l'adresse doit être dans l'ensemble des domaines qu'elle définit.

senders

Si cette option est définie, le routeur est ignoré à moins que l'adresse de l'expéditeur du message corresponde à quelque chose dans la liste. Voir la section 3.12 pour une liste de l'ordre dans lequel les préconditions sont évaluées.

La première règle ci-dessus dit à exim d'envoyer tous les e-mails avec un domaine d'expéditeur example.com à envoyer sans rien faire de spécial. La deuxième règle est un catch-all pour tous les e-mails. Vous pouvez essayer.

Voici la discussion pertinente : http://www.gossamer-threads.com/lists/exim/users/97056

0 votes

Salut @bangal, merci pour ta réponse. La configuration que tu as fournie ne permet pas de laisser passer le *.example.com à travers la règle catch_all_outgoing. J'aurais dû dire que les domaines *@example.com sont des destinataires, pas des expéditeurs. En d'autres termes. Tous les e-mails *@example.com doivent être livrés aux destinataires example.com, les autres doivent être redirigés vers le compte devmail@1234.oursmarthost.com.

0 votes

J'ai mis à jour ma réponse. Jetez un œil.

0 votes

Bonjour @bangal: Exim répond avec l'option "domain" inconnue lors du redémarrage.

0voto

Server Admin Points 31

commencer les routeurs

router_for_special_domain_reciepint: driver = manualroute domains = example.com transport = remote_smtp route_list = "* internalsmarthost.example.com " no_more

catch_all_outgoing: driver = redirect data = devmail@1234oursmarthost.com

Comme j'utilise un smarthost pour les deux, l'exception dans le routeur router_for_special_domain_recipient et pour le routeur catch_all_outgoing, j'ai dû ajouter l'option route_list. Utiliser le driver dnslookup aurait pour conséquence d'envoyer le courrier directement à la cible sans utiliser de smarthost.

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