Du försöker inaktivera lokal e-postleverans med iRedMail och postfix på din hemmagjorda e-postserver, och du slår huvudet i väggen. Du använder en hemmagjord server för e-postleverans, men inkorgen finns på en andra server. I den här artikeln kommer jag att dela med mig av vad jag har lärt mig om hur man inaktiverar lokal e-postleverans med Postfix och tvingar all e-post för vissa domäner att vidarebefordras genom deras korrekta MX-adresser.
Jag sökte och sökte och sökte på internet efter denna information, och för att vara ärlig är jag inte ens säker på om det kommer att fungera för din installation.Men baserat på den tid jag ägnade åt att undersöka det här problemet, även som en icke-Linux-serverexpert, tänkte jag att jag skulle vidarebefordra mina upptäckter och be att det hjälper till att lindra din frustration.
Felet
Om du ser felet "okänd användare i virtuell brevlådetabell" är du på rätt plats. I grund och botten vill du att postfix ska sluta försöka leverera e-post till e-postkonton på din server som inte finns. Är det verkligen för mycket begärt?
Åtgärda postfix för att inaktivera lokal e-postleverans för en domän
I princip är alla postfixs huvudkonfigurationsinställningar i main.cf, så du kan öppna filen genom att skriva vim /etc/postfix/main.cf .
Leta efter raden virtual_mailbox_domains - kommentera den genom att sätta ettföre den. Det kommer att inaktivera lokal e-postleverans helt och hållet. Här är min:
virtual_mailbox_domains=proxy:ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf
Nästa, leta reda på relay_domains-raden och lägg till det som finns där med domännamnen för de e-postadresser vars inkorgar do finns på din hemmagjord e-postserver. Min ser ut så här:
relay_domains=payette.email, $mydestination, proxy:ldap:/etc/postfix/ldap/relay_domains.cf
… Vi gör själva filen i nästa steg. Min ser ut så här:
transport_maps=hash:/etc/postfix/transport, proxy:ldap:/etc/postfix/ldap/transport_maps_user.cf, proxy:ldap:/etc/postfix/ldap/transport_maps_domain.cf
Nu är det bara att skapa transportfilen som säger "Ta all incoming email to this doain and send it through this MX server istället!"
Så skapa filen genom att skriva vim /etc/postfix/transport . Lägg till en rad för varje domän som du vill inaktivera lokal leverans för, som exemplet nedan, och placera MX-servern inom parentes. Här är min:
payetteforward.com smtp:
Gör sedan vad postmap gör på filen genom att skriva postmap /etc/postfix/transport . Det är viktigt - jag skulle förklara varför, men jag är säker på att det är långt över ditt huvud. (Jag har absolut ingen aning om vad den gör.)
Knep: Om du inte är säker på vad den korrekta MX-servern är för en viss domän kan du använda det här häftiga kommandot för att ta reda på vad det är - jag tror att du verkligen kommer att gräva det, man .
dig -tmx payetteforward.com
Starta sedan om postfix genom att skriva service postfix restart , säg en bön och försök sedan igen. Om det fungerar, köp mig en Corvette. Om det inte gör det, låt mig veta i kommentarsavsnittet så kan vi arbeta tillsammans för att göra detta till en lite förståelig guide för att lösa det här problemet.
Postfix Postfix
Var nu tacksam för att problemet är löst: Du har inaktiverat lokal leverans på din lokala e-postserver som kör postfix eller iRedMail, och du använder rätt MX-adresser istället.