En tidigare version av denna tutorial är skriven av Justin Ellingwood
Inledning
Postfix är en populär öppen källkod Mail Transfer Agent (MTA) som kan användas för att dirigera och leverera e-post på ett Linux-system. Det uppskattas att cirka 25% av offentliga e-postservrar på internet kör Postfix.
i den här guiden lär du dig hur du installerar och konfigurerar Postfix på en Ubuntu 20.04-server., Sedan testar du att Postfix kan skicka e-post korrekt genom att installera s-nail
, en Mailanvändare Agent (MUA), även känd som en e-postklient.
Observera att målet med denna handledning är att hjälpa dig att få Postfix igång snabbt med bara några bare-bones e-postfunktionalitet. Du kommer inte att ha en fullfjädrad e-postserver i slutet av den här guiden, men du kommer att ha några av de grundläggande komponenterna i en sådan inställning som hjälper dig att komma igång.
förutsättningar
för att följa den här guiden behöver du följande:
- en server som kör Ubuntu 20.,04 för att fungera som din Postfix mailserver. Den här servern ska ha en icke-root-användare med
sudo
– behörighet och en brandvägg konfigurerad med UFW. Du kan följa vår Ubuntu 20.04 initial server setup guide för att ställa in detta. - ett fullt kvalificerat domännamn pekade på din Ubuntu 20.04-server. Du kan hitta hjälp med att konfigurera ditt domännamn med DigitalOcean genom att följa våra domäner och DNS-nätverksdokumentation. Tänk på att om du planerar att komma åt e-post från en extern plats, måste du se till att du har en MX-post som pekar på din e-postserver samt.,
Observera att denna handledning förutsätter att du konfigurerar en värd som har FQDN förmail.example.com
. Var noga med att ändra example.com
eller mail.example.com
för att spegla din egen FQDN.
Steg 1-Installera Postfix
Postfix ingår i Ubuntu standardförråd, så att du kan installera det med APT.
för att börja, uppdatera din lokalaapt
paketcache:
- sudo apt update
Installera sedan paketetpostfix
med följande kommando., Observera att här skickar vi DEBIAN_PRIORITY=low
miljövariabel till det här installationskommandot. Detta kommer att leda till att installationsprocessen uppmanar dig att konfigurera några ytterligare alternativ:
- sudo DEBIAN_PRIORITY=low apt install postfix
den här installationsprocessen öppnar en serie interaktiva uppmaningar. I denna handledning använder du följande information för att fylla i dina uppmaningar:
- allmän typ av postkonfiguration?: För detta, välj webbplats eftersom detta matchar våra infrastrukturbehov.,
- system mail name: det här är basdomänen som används för att konstruera en giltig e-postadress när endast kontodelen av adressen anges. Låt oss till exempel säga att värdnamnet på din server är
mail.example.com
. Du kommer sannolikt att vilja ställa in systempostnamnet tillexample.com
så att Postfix, med tanke på användarnamnetuser1
, använder adressen.
- Root och postmaster mail mottagare: Detta är Linux-kontot som kommer att vidarebefordras mail adresserat till
root@
ochpostmaster@
., Använd ditt primära konto för detta. I det här exemplet, sammy. - andra destinationer att acceptera e-post för: detta definierar de postdestinationer som Postfix-instansen accepterar. Om du behöver lägga till andra domäner som den här servern ansvarar för att ta emot, Lägg till dem här. Annars kommer standardvärdet att vara tillräckligt.
- tvinga synkrona uppdateringar på postkö?: Eftersom du sannolikt använder ett journalfört filsystem, Acceptera Nej här.
- lokala nätverk: det här är en lista över de nätverk för vilka din e-postserver är konfigurerad för att vidarebefordra meddelanden., Standard fungerar för de flesta scenarier. Om du väljer att ändra det, se till att vara mycket restriktiv när det gäller nätverksintervallet.
- mailbox size limit: detta kan användas för att begränsa storleken på meddelanden. Ställa in den på
0
inaktiverar alla storleksbegränsningar. - lokalt adresstilläggskaraktär: det här är tecknet som kan användas för att skilja den vanliga delen av adressen från ett tillägg (används för att skapa dynamiska Alias). Standardvärdet,
+
kommer att fungera för denna handledning., - internetprotokoll att använda: Välj om du vill begränsa den IP-version som Postfix stöder. I denna handledning, Välj alla.
för att vara explicit är det de inställningar som används i den här guiden:
Obs: Om du någonsin behöver återvända för att ändra dessa inställningar kan du göra det genom att skriva:
- sudo dpkg-reconfigure postfix
anvisningarna kommer att fyllas i i förväg med dina tidigare svar.
när installationsprocessen är klar är du redo att göra några uppdateringar av Postfix-konfigurationen.,
steg 2-Ändra Postfix-konfigurationen
Nu kan du justera vissa inställningar som paketinstallationsprocessen inte uppmanade dig för. Många av Postfixens konfigurationsinställningar definieras i filen/etc/postfix/main.cf
. I stället för att redigera den här filen direkt kan du använda Postfixens postconf
– kommando för att fråga eller ställa in konfigurationsinställningar.
för att börja, Ställ in platsen för din icke-root Ubuntu-användares brevlåda., I den här guiden använder vi Maildir-formatet, som separerar meddelanden i enskilda filer som sedan flyttas mellan kataloger baserat på användaråtgärd. Det alternativa alternativet som inte omfattas av den här guiden är MBOX-formatet, som lagrar alla meddelanden i en enda fil.
Ställ in variabelnhome_mailbox
tillMaildir/
. Senare skapar du en katalogstruktur under det namnet i användarens hemkatalog., Konfigurerahome_mailbox
genom att skriva:
- sudo postconf -e 'home_mailbox= Maildir/'
ställ sedan in platsen för tabellenvirtual_alias_maps
, som kartlägger godtyckliga e-postkonton till Linux-systemkonton. Kör följande kommando, som kartlägger tabellplatsen till en hash-databasfil med namnet /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Nu när du har definierat platsen för den virtuella kartfilen i filen main.cf
kan du skapa filen själv och börja mappa e-postkonton till användarkonton på ditt Linux-system., Skapa filen med din föredragna textredigerare; i det här exemplet använder vi nano
:
- sudo nano /etc/postfix/virtual
lista alla adresser som du vill acceptera e-post för, följt av ett blanktecken och Linux-användaren du vill att e-postmeddelandet levereras till.,
till exempel, om du vill acceptera e-post på och
och vill ha dessa e-postmeddelanden levererade till Sammy Linux-användaren, kan du ställa in din fil så här:
[email protected] [email protected] sammy
Efter att du har mappat alla de e-postmeddelanden som adresser till lämpliga serverkonton, spara och stäng filen. Om du använde nano
, gör detta genom att trycka på CTRL + X
, Y
, sedan ENTER
.,
använd mappningen genom att skriva:
- sudo postmap /etc/postfix/virtual
Starta om Postfix-processen för att vara säker på att alla dina ändringar har tillämpats:
- sudo systemctl restart postfix
Om du antar att du följde den grundläggande installationsguiden för servern har du konfigurerat en brandvägg med UFW. Denna brandvägg blockerar externa anslutningar till tjänster på din server som standard om inte dessa anslutningar uttryckligen tillåts, så du måste lägga till en brandväggsregel för att tillåta ett undantag för Postfix.,
Du kan tillåta anslutningar till tjänsten genom att skriva:
- sudo ufw allow Postfix
med det är Postfix konfigurerat och redo att acceptera externa anslutningar. Men du är ännu inte redo att testa det med en e-postklient. Innan du kan installera en klient och använda den för att interagera med e-post som levereras till din server, måste du göra några ändringar i din Ubuntu server setup.,
steg 3-Installera e-postklienten och initiera Maildir-strukturen
för att interagera med posten som levereras, kommer det här steget att gå igenom processen att installera paketet s-nail
. Detta är en funktionsrik variant av BSD xmail
-klienten som kan hantera Maildir-formatet korrekt.
innan du installerar klienten är det dock klokt att se till att miljövariabeln MAIL
är korrekt inställd., s-nail
kommer att leta efter denna variabel för att ta reda på var du hittar e-post för din användare.
för att säkerställa att variabeln MAIL
är inställd oavsett hur du kommer åt ditt konto — antingen via ssh
, su
, su -
, eller sudo
, till exempel — måste du ställa in variabeln i filen /etc/bash.bashrc
och Lägg till den i en fil i /etc/profile.d
för att se till att den är inställd för alla användare som standard.,
för att lägga till variabeln i dessa filer, skriv:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
för att läsa variabeln i din aktuella session, källa/etc/profile.d/mail.sh
fil:
- source /etc/profile.d/mail.sh
Installeras-nail
e-postklient med APT:
- sudo apt install s-nail
innan du kör klienten finns det några inställningar du behöver justera. Öppna filen/etc/s-nail.rc
I redigeraren:
- sudo nano /etc/s-nail.rc
längst ner i filen lägger du till följande alternativ:
. . .set emptystartset folder=Maildirset record=+sent
här är vad dessa rader gör:
-
set emptystart
: tillåter klienten att öppna även med en tom inkorg -
set folder=Maildir
: ställer in katalogenMaildir
till den internafolder
variabel -
set record=+sent
skapar ensent
mbox-fil för lagring av skickat mail inom vilken katalog som är inställd som variabelnfolder
, I det här falletMaildir
spara och stäng filen när du vill spara den.du är klar., Du är nu redo att initiera systemets Maildir struktur.
ett snabbt sätt att skapa Maildir-strukturen i din hemkatalog är att skicka ett e-postmeddelande med kommandot s-nail
. Eftersom filensent
endast kommer att vara tillgänglig när Maildir skapas, bör du inaktivera skrivning till den för detta första e-postmeddelande. Gör detta genom att skicka-Snorecord
– alternativet.
skicka e-postmeddelandet genom att skicka en sträng till kommandots-nail
., Justera kommandot för att markera din Linux – användare som mottagare:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Obs! Du kan få följande svar:
OutputCan't canonicalize "/home/sammy/Maildir"
detta är normalt och kan bara visas när du skickar det första meddelandet.,
Du kan kontrollera att katalogen skapades genom att leta efter din katalog ~/Maildir
:
- ls -R ~/Maildir
Du kommer att se att katalogstrukturen har skapats och att en ny meddelandefil finns i katalogen ~/Maildir/new
:
nu när katalogstrukturen har skapats är du redo att skapa en ny katalog.testa s-nail
– klienten genom att visa init
– meddelandet du skickade och skicka ett meddelande till en extern e-postadress.,
steg 4 — Testa klienten
för att öppna klienten, kör kommandot s-nail
:
- s-nail
i konsolen ser du en rudimentär inkorg med meddelandet init
väntar:
Tryck på ENTER
för att visa meddelandet:
Du kan komma tillbaka till meddelandelistan genom att skriva h
och sedan ENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
Lägg märke till att meddelandet nu har ett tillstånd av
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
id = ”f26cfbc2fe” > , vilket indikerar att det har lästs.,
eftersom det här meddelandet inte är särskilt användbart kan du ta bort det genom att trycka påd
och sedanENTER
:
- d
för att komma tillbaka till terminalen skriver duq
och sedanENTER
:
- q
som ett sluttest, kontrollera oms-nail
kan skicka e-postmeddelanden korrekt. För att göra detta kan du leda innehållet i en textfil till s-nail
– processen, som du gjorde med init
– meddelandet du skickade i föregående steg.,
börja med att skriva ett testmeddelande i en textredigerare:
- nano ~/test_message
inuti, skriv in någon text du vill skicka:
Hello,This is a test. Please confirm receipt!
spara och stäng filen efter att ha skrivit ditt meddelande.
använd sedan kommandotcat
för att skicka meddelandet till processens-nail
., Du kan göra det med följande exempel, som använder följande alternativ:
-
-s
: detta definierar ämnesraden i e-postmeddelandet -
-r
: en valfri ändring i fältet ”From:” i e-postmeddelandet. Som standard används Linux-användaren du är inloggad som för att fylla i det här fältet. Alternativet-r
låter dig åsidosätta detta med en giltig adress, till exempel en av dem du definierade i filen/etc/postfix/virtual
., För att illustrera använder följande kommando
var noga med att ändra till en giltig e-postadress som du har tillgång till:
- cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
navigera sedan till inkorgen för den e-postadress som du skickade meddelandet till. Du kommer att se ditt meddelande väntar där nästan omedelbart.
Obs! Om meddelandet inte finns i din inkorg kan det ha levererats till din skräppostmapp.
Du kan visa dina skickade meddelanden is-nail
– klienten., Starta den interaktiva klienten igen:
- s-nail
Från e-postklienten, visa dina skickade meddelanden genom att skriva:
- file +sent
du ser utdata så här:
Output+sent: 1 message 1 new▸N 1 [email protected] 2020-05-19 15:47 12/297 Test email subject line
Du kan hantera skickat e-post med samma kommandon som du använder för inkommande e-post.
slutsats
Du har nu Postfix konfigurerad på din Ubuntu 20.04-server. Hantera e-postservrar kan vara en tuff uppgift för nya systemadministratörer, men med denna konfiguration, Du bör ha tillräckligt mta e-funktionalitet för att komma igång.