6 votes

Sendmail : ignorer la livraison locale

J'ai un serveur web Ubuntu avec Sendmail comme MTA.

Actuellement, lorsque j'envoie un courriel en dehors du domaine de mon serveur web, par exemple exemple exemple.com, vers quelque chose comme gmail ou tout autre courriel en dehors du domaine exemple.com, cela fonctionne parfaitement. Je ne veux pas que mon démon sendmail reconnaisse exemple.com comme une adresse locale, je veux qu'il envoie à exemple.com de la même manière que tout autre courriel.

Il n'y aura jamais de cas où j'utiliserai les utilisateurs locaux du serveur web pour collecter ces courriels par exemple.com.

Alors comment désactiver la livraison locale ?

3voto

usef_ksa Points 785

Vous pouvez le faire en supprimant votre nom de domaine du fichier /etc/hosts. Vous devez configurer senmail pour qu'il utilise votre nom de domaine (exemple.com) lors de l'envoi des e-mails au lieu de localhost.

modifier /etc/mail/sendmail.mc ajoutez ce qui suit :

     MASQUERADE_AS(example.com)dnl
     FEATURE(masquerade_envelope)dnl
     FEATURE(masquerade_entire_domain)dnl
     MASQUERADE_DOMAIN(example.com)dnl

avant :

   MAILER(smtp)dnl
   MAILER(procmail)dnl
   dnl MAILER(cyrusv2)dnl

type m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf puis exécutez /sbin/service sendmail restart

sauvegarder tout ce que vous éditez avant toute modification !

cette solution fonctionne très bien pour moi !

2voto

Sean Reifschneider Points 10110

Sendmail traite la classe "w" comme les domaines pour lesquels il tentera une livraison locale. La configuration par défaut de CentOS inclut ces lignes, par exemple :

Cwlocalhost
# file containing names of hosts for which we receive email
Fw/etc/mail/local-host-names

Ceci spécifie "w" pour inclure le nom "localhost" et le contenu du fichier "/etc/mail/local-host-names". Je soupçonne que vous avez "exemple.com" dans "/etc/mail/local-host-names", probablement configuré pendant l'installation du système.

Vous voudrez bien vérifier cela, car je n'ai pas de système de test de sendmail sur lequel vérifier cela et je ne peux donc pas le faire ici. De plus, cela peut varier quelque peu en fonction de votre installation exacte de sendmail, qui peut varier selon la distribution ou le système d'exploitation.

1voto

Sean Points 905

Vous pouvez le faire en ajoutant des règles au jeu de règles 2. Dans votre fichier sendmail.mc, ajoutez ce qui suit :

LOCAL_RULE_2
R$* < $=w . > $*          $#esmtp $@[MX server for example.com] $: $1 < @ $2 > $3

N'oubliez pas que la partie gauche et la partie droite de la règle sont séparées par des onglets, donc ne faites pas de copier-coller. Ensuite, construisez votre sendmail.cf à partir de votre sendmail.mc, redémarrez sendmail et testez.

Vous pouvez utiliser la carte bestmx si vous ne voulez pas coder en dur le nom du serveur MX entre les crochets.

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