Vous essayez de désactiver la livraison locale des e-mails avec iRedMail et postfix sur votre serveur de messagerie maison, et vous vous cognez la tête contre le mur. Vous utilisez un serveur maison pour la livraison des e-mails, mais la boîte de réception réside sur un deuxième serveur. Dans cet article, je vais partager ce que j'ai appris sur comment désactiver la distribution locale des e-mails avec Postfix et forcer tous les e-mails de certains domaines à être transférés via leur adresses MX appropriées.
J'ai cherché et cherché et cherché sur Internet ces informations, et pour être honnête, je ne suis même pas sûr que cela fonctionnera pour votre configuration.Mais sur la base du temps que j'ai passé à rechercher ce problème, même en tant qu'expert en serveur non-Linux, j'ai pensé que je transmettrais mes découvertes et prierais pour que cela aide à atténuer votre frustration.
L'erreur
Si vous voyez l'erreur "utilisateur inconnu dans la table des boîtes aux lettres virtuelles", vous êtes au bon endroit. Fondamentalement, vous voulez que postfix arrête d'essayer de livrer des e-mails à des comptes de messagerie sur votre serveur qui n'existent pas. Est-ce vraiment trop demander?
Correction de Postfix pour désactiver la livraison locale des e-mails pour un domaine
Fondamentalement, tous les principaux paramètres de configuration de postfix sont dans main.cf, vous pouvez donc ouvrir le fichier en tapant vim /etc/postfix/main.cf .
Recherchez la ligne virtual_mailbox_domains - commentez-la en mettant undevant. Cela va désactiver complètement la livraison locale des e-mails. Voilà le mien:
virtual_mailbox_domains=proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf
Ensuite, trouvez la ligne relay_domains et ajoutez tout ce qui s'y trouve avec les noms de domaine des adresses e-mail dont les boîtes de réception do vivent sur votre serveur de messagerie maison. Le mien ressemble à ça :
relay_domains=payette.email, $mydestination, proxy:ldap:/etc/postfix/ldap/relay_domains.cf
Enfin, trouvez la ligne transport_maps et ajoutez hash:/etc/postfix/transport à tout ce qui s'y trouve. Nous créerons le fichier réel à l'étape suivante. Le mien ressemble à ça :
transport_maps=hash:/etc/postfix/transport, proxy:ldap:/etc/postfix/ldap/transport_maps_user.cf, proxy:ldap:/etc/postfix/ldap/transport_maps_domain.cf
Maintenant, tout ce qu'il reste à faire est de créer le fichier de transport indiquant "Prenez tous les e-mails entrants sur ce domaine et envoyez-les via ce serveur MX à la place !"
Donc, créez le fichier en tapant vim /etc/postfix/transport . Ajoutez une ligne pour chaque domaine pour lequel vous souhaitez désactiver la livraison locale, comme dans l'exemple ci-dessous, en mettant le serveur MX entre parenthèses. Voilà le mien:
payetteforward.com smtp :
Ensuite, faites ce que postmap fait sur le fichier en tapant postmap /etc/postfix/transport . C'est important - j'expliquerais pourquoi, mais je suis sûr que c'est bien au-dessus de votre tête. (Je n'ai absolument aucune idée de ce qu'il fait.)
Astuce : si vous n'êtes pas sûr du bon serveur MX pour un domaine donné, vous pouvez utiliser cette commande groovy pour savoir ce que c'est - je pense que vous allez vraiment le creuser, mec .
dig -tmx payetteforward.com
Ensuite, redémarrez postfix en tapant service postfix restart , dites une prière, puis réessayez. Si ça marche, achète-moi une Corvette. Si ce n'est pas le cas, faites-le moi savoir dans la section des commentaires et nous pourrons travailler ensemble pour en faire un guide quelque peu compréhensible pour résoudre ce problème.
Postfix Post Fix
Pour l'instant, soyez reconnaissant que le problème soit résolu : vous avez désactivé la livraison locale sur votre serveur de messagerie local exécutant postfix ou iRedMail, et vous utilisez à la place les bonnes adresses MX.