i blogginlägget bästa gratis SMTP-servrar berörde vi de molnbaserade lösningarna för att skicka e-post. Dessa är ganska vanliga för alla storlekar av projekt. Men vad händer om du inte vill använda e-postrelätjänsterna i Gmail SMTP eller dess alternativ? I den här artikeln lär vi dig hur du ställer in en lokal SMTP-server och bli av med eventuella e-postsändande beroenden.
behöver du verkligen en SMTP-server?
att använda en utgående SMTP-server är den traditionella metoden för att skicka e-post. En alternativ lösning är att kringgå SMTP-servern och skicka direkt till destinationen. Det är känt som direktsändning, och du kan använda det via specifika e-postprogram. Direktsändning är dock inte särskilt pålitlig, och här är varför:
- det kan inte användas om port 25 blockeras av din Internetleverantör.
- det är olämpligt för massmail på grund av flera anslutningar till många olika servrar.
- det kan inte skicka icke-personliga e-postmeddelanden.
- det kan blockeras av e-postfilter eftersom e-postmeddelanden inte skickas från en vanlig SMTP-server.
Låt oss sätta direkt skicka bort. Vad du kanske är intresserad av är varför du skulle köra din egen SMTP-server.
fördelar och nackdelar med en lokal SMTP-server
fördelar | nackdelar |
---|---|
|
|
vissa molnbaserade lösningar som Mailgun och SendPulse ger också alla fördelar ovan. Men alla dessa funktioner betalas, och du måste fortfarande lita på en tredje parts tjänst. Istället kan du ställa in en SMTP-server på din dator med en specifik programvara.
krav för en lokal SMTP-server
det finns inga specifika krav hittills. Ändå bör du vara beredd på följande:
- vissa Internetleverantörer kan blockera porten 25. Du kan lösa detta genom att kontakta din ISP-leverantör och lära dig om de begränsningar de kan införa. Du måste också begära en korrekt DNS-server och tillstånd för MX-rekordupplösning.
- för massmeddelanden bör du förmodligen välja en domän och en fast IP – adress som är associerad med den-detta kommer att öka ditt motstånd mot spamfilter.
snabb SMTP-serverinställning
låt oss nu göra jobbet. Eftersom du ska ställa in en SMTP-server på din dator är det viktigt att veta vilket operativsystem som används. Därför granskar vi tre sätt att göra detta för macOS, Windows och Linux.
viktig anmärkning: om du skickar testmeddelanden till den riktiga e-postadressen kanske du inte hittar dem i inkorgen. Glöm inte att kolla skräppostmappen. ESPs som Gmail, Yahoo och andra är misstänkta för nya e-postöverföringsagenter.
för macOS
de senaste versionerna av macOS X är förinstallerade med Postfix-en standard e – postserver. Så allt du behöver göra är att justera SMTP-serverkonfigurationen enligt följande:
postfix config file
- Postfix huvudkonfigurationsfilen är den första som arbetar med. Kör:
sudo vim /etc/postfix/main.cf
- berätta för Postfix vilket namn det ska använda för att identifiera sig med andra e-postservrar. Lägg till följande rader:
myhostname = john.example.commyorigin = example.com
om ditt lokala användarnamn är John, e-postmeddelandet verkar vara från [email protected].
- relävärden är den maskin som accepterar e-post efter autentisering och vidarebefordrar dem till SMTP-servern.
relayhost=mail.example.com:25
- du måste aktivera SASL med en ytterligare konfigurationsfil, där lösenordet är lagrat.
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- den här raden innebär att Postfix endast använder TLS-krypterade anslutningar.
smtp_tls_security_level = encrypt
- så här ser
main.cf
ut i sin helhet:
myhostname = john.example.commyorigin = example.comrelayhost=mail.example.com:25smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswdsmtp_tls_security_level = encrypt
- spara filen med:
sudo postmap /etc/postfix/main.cf
fil med SASL-lösenord
- skapa filen
sasl_passwd
:
sudo vim /etc/postfix/sasl_passwd
- Lägg till följande rad:
mail.example.com:25 [email protected]:
- spara filen med:
sudo postmap /etc/postfix/sasl_passwd
- och starta om Postfix:
sudo postfix reload
den lokala SMTP-servern är klar. Prova det genom att skicka ett testmeddelande:
date | mail -s "Test email" [email protected]
det här installationsflödet är lämpligt för icke-macOS-maskiner som har en vanlig Postfix-Demon.
för Linux
de flesta Linux-distributioner levereras med de två vanligaste SMTP-implementeringarna: Sendmail och Postfix. Sendmail har en ganska komplex design och är mindre säker; det är därför vi plockade Postfix igen.
Installation
om du inte har Postfix på din maskin, installera den först. Du behöver också postpaketet Mailutils, som innehåller program som är nödvändiga för att Postfix ska fungera:
sudo apt install mailutils postfix
i Postfix-konfigurationsfönstret måste du välja konfigurationen för e-post på webbplatsen. Slutligen måste du ange systemets postnamn. Det ska vara detsamma som namnet du tilldelade domännamnet som pekar på din server. Låt oss använda example.com.
konfiguration
låt oss nu konfigurera Postfix för att behandla förfrågningar om att skicka e-post från localhost. För detta måste du justera huvudkonfigurationsfilen main.cf
:
sudo nano /etc/postfix/main.cf
bläddra ner till raden inet_interfaces = all
och ersätt den med inet_interfaces = loopback-only
du måste också ändra mydestination
, som anger listan över domäner. Det ska se ut så här:
mydestination = $myhostname, localhost.$example.com, $example.com
spara filen och starta om Postfix med:
sudo systemctl restart postfix
i slutet, försök att skicka ett testmeddelande:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
för Windows
det finns flera programalternativ för att ställa in en SMTP-server på Windows inklusive MailEnable och Apache James. Men vi har valt den mest populära, kallad hMailServer.
Installation
ladda ner den senaste versionen här och installera den. I början av installationen måste du vara uppmärksam på följande:
- i fönstret Välj komponenter, se till att fullständig installation är vald. Server-och administrativa komponenter måste kontrolleras.
- i fönstret Välj databasservertyp kontrollerar du den inbyggda databasmotorn.
- i säkerhetsfönstret hMailServer skapar du ett lösenord för standardanvändaren.
en gång installerat, kör hMailServer, och nu ska vi konfigurera den.
konfiguration
- klicka på Anslut i startfönstret och ange lösenordet du ställde in under installationen.
- klicka på Lägg till domän och ange ditt domännamn i motsvarande fält. Förresten kan du använda ett falskt domännamn eftersom det verkliga inte krävs för att skicka e-post. Men i det här fallet, se till att den falska domänen inte existerar. Klicka på Spara och du ser din domän Skapad på den vänstra fliken.
- Välj mappen konton på den vänstra fliken och klicka på Lägg till… för att konfigurera en. Allt du behöver göra här är att ange ett namn i adressfältet. Detta kommer att ställa in din e-postadress. Eventuellt kan du ange ett lösenord. Klicka på Spara och gå vidare till inställningarna på den vänstra fliken.
- expandera inställningsgängan och välj protokoll. Avmarkera POP3 och IMAP. För mer information om dessa protokoll, läs vårt blogginlägg IMAP vs. POP3 vs. SMTP. Klicka På Spara.
- Välj nu Avancerat i Inställningsgängan och ange localhost i Standarddomänfältet på den högra fliken. Klicka På Spara. För att sluta med de avancerade inställningarna, välj Auto-ban och avmarkera rutan aktiverad. Klicka På Spara.
- i slutet, expandera Verktygsgängan och välj diagnostik. Välj din domän för att köra tester på och klicka på Start. Vi är inte intresserade av alla tester, bara samla serverinformation och testa utgående port. Dessa ska vara markerade gröna.
det är det. Nu kan du skicka ditt testmail. Detta kan göras med PowerShell-det är snabbt och enkelt. För mer om detta, läs vårt blogginlägg skicka e-post från PowerShell. Kör följande rad (glöm inte att mata in dina data):
Send-MailMessage -To "<recipient's email address>" -From "<your email address>" -Subject "Your email subject" -Body "Your email body text" -Credential "<your username>" -SmtpServer "127.0.0.1" -Port 25
i popup-fönstret måste du ange ditt lösenord.
är en SMTP-server bra för testning?
i de flesta fall ställer människor in lokala SMTP-servrar för teständamål. Om du utvecklar en app som skickar e-post måste du testa den här funktionen och en riktig SMTP-server som körs på din lokala maskin kan tyckas vara ett bra alternativ. Men är det? Å ena sidan är det inte besvärligt att installera och konfigurera en lokal SMTP-server. Det finns dock en mycket bättre lösning.
om du använder Mailtrap för testning får du ett avancerat verktyg baserat på en falsk SMTP-server. Det betyder att din app kommer att skicka e-post men faktiskt inte leverera dem. Din utgående e-post kommer att hamna i Mailtrap Demo inkorg. Så du behöver inte oroa dig för riktiga e-postmottagare och kontrollera skräppostmappen varje gång du kör tester. Ingen installation krävs alls. Allt du behöver göra är att uppdatera dina SMTP-inställningar med Mailtrap-referenser. Alternativt kan du kopiera och klistra in ett färdigt kodavsnitt. Olika integrationer finns tillgängliga för de vanligaste ramverken och programmeringsspråken. För mer information om andra fördelar och funktioner, läs Mailtrap komma igång Guide.
för att avsluta
att köra en lokal e-postserver kan ibland vara en smärta. Mycket kunskap och ansträngning krävs för att uppnå god leverans av e-post med din egen SMTP-server. Kanske är det ett bra alternativ för teständamål, men Mailtrap eller andra testverktyg för e-post kommer att göra det bättre. Så behöver du faktiskt en lokal SMTP-server? Du är den enda som kan svara på det. Lycka till!