in de blogpost beste gratis SMTP-Servers, hebben we gesproken over de cloud-gebaseerde oplossingen voor het verzenden van e-mails. Deze zijn vrij gebruikelijk voor alle groottes van projecten. Maar wat als u niet wilt dat de e-mail relay diensten van Gmail SMTP of de alternatieven te gebruiken? In dit artikel leren we je hoe je een lokale SMTP-server instelt en alle afhankelijkheden voor het verzenden van e-mail kwijtraakt.
heeft u echt een SMTP-server nodig?
het gebruik van een uitgaande SMTP-server is de traditionele methode voor het verzenden van e-mails. Een alternatieve oplossing is om de SMTP-server te omzeilen en rechtstreeks naar de bestemming te sturen. Het staat bekend als Direct verzenden, en u kunt het gebruiken door middel van specifieke e-mail software programma ‘ s. Direct verzenden is echter niet erg betrouwbaar, en hier is de reden waarom:
- het kan niet worden gebruikt als poort 25 wordt geblokkeerd door uw ISP.
- het is ongeschikt voor bulk e-mail vanwege meerdere verbindingen met veel verschillende servers.
- het kan geen niet-gepersonaliseerde e-mails verzenden.
- het kan worden geblokkeerd door e-mailfilters omdat e-mails niet worden verzonden vanaf een reguliere SMTP-server.
laten we Direct verzenden wegleggen. Waar je misschien in geïnteresseerd bent, is waarom je je eigen SMTP-server zou draaien.
voor-en nadelen van een lokale SMTP-server
Voors | Nadelen |
---|---|
|
|
Sommige cloud-gebaseerde oplossingen, zoals Mailgun en SendPulse bieden alle voordelen boven als goed. Echter, al deze functies worden betaald, en je moet nog steeds vertrouwen op een dienst van derden. In plaats daarvan kunt u een SMTP-server op uw computer instellen met behulp van een specifieke software.
vereisten voor een lokale SMTP-server
er zijn tot nu toe geen specifieke vereisten. Toch moet u voorbereid zijn op de volgende:
- sommige ISP ‘ s kunnen de poort 25 blokkeren. U kunt dit oplossen door contact op te nemen met uw ISP-provider en te leren over de beperkingen die zij kunnen opleggen. Ook, je nodig hebt om een juiste DNS-server en toestemming voor MX record resolutie aan te vragen.
- voor bulk e-mails moet u waarschijnlijk kiezen voor een domein en een vast IP – adres dat eraan gekoppeld is-dit zal uw weerstand tegen spamfilters verhogen.
snelle SMTP-serverinstellingen
laten we nu het werk doen. Aangezien je een SMTP-server gaat opzetten op je computer, is het cruciaal om te weten welk besturingssysteem wordt gebruikt. Daarom zullen we drie manieren bekijken om dit te doen voor macOS, Windows en Linux.
belangrijke opmerking: Als u test-e-mails naar het echte e-mailadres stuurt, vindt u ze mogelijk niet in het postvak in. Vergeet niet om de spam folder te controleren. ESPs zoals Gmail, Yahoo, en anderen zijn verdacht van nieuwe Mail transfer agenten.
voor macOS
de nieuwste versies van macOS X zijn vooraf geïnstalleerd met Postfix-een standaard e-mailserver. Het enige wat u hoeft te doen is de configuratie van de SMTP-server als volgt aanpassen:
postfix-configuratiebestand
- het hoofdconfiguratiebestand van Postfix is het eerste waarmee gewerkt wordt. Uitvoeren:
sudo vim /etc/postfix/main.cf
- vertel Postfix welke naam Het moet gebruiken om zichzelf te identificeren met andere mailservers. Voeg de volgende regels toe:
myhostname = john.example.commyorigin = example.com
als uw lokale gebruikersnaam John is, zal de mail lijken te zijn van [email protected].
- de relay host is de machine die e-mails accepteert na authenticatie en deze doorstuurt naar de SMTP-server.
relayhost=mail.example.com:25
- je moet SASL inschakelen met een extra configuratiebestand, waarin het wachtwoord is opgeslagen.
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- deze regel betekent dat Postfix alleen TLS-versleutelde verbindingen zal gebruiken.
smtp_tls_security_level = encrypt
- zo ziet
main.cf
er volledig uit:
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
- het bestand opslaan met:
sudo postmap /etc/postfix/main.cf
bestand met SASL-wachtwoord
- Maak het
sasl_passwd
– bestand aan:
sudo vim /etc/postfix/sasl_passwd
- voeg de volgende regel toe:
mail.example.com:25 [email protected]:
- het bestand opslaan met:
sudo postmap /etc/postfix/sasl_passwd
- en herstart Postfix:
sudo postfix reload
de lokale SMTP-server is klaar. Probeer het uit door het verzenden van een test e-mail:
date | mail -s "Test email" [email protected]
Opmerking: deze setup flow is geschikt voor niet-macOS machines die een reguliere Postfix daemon hebben.
Voor Linux
de meeste Linux-distributies worden geleverd met de twee meest voorkomende SMTP-implementaties: sendmail en Postfix. Sendmail heeft een vrij complex ontwerp en is minder veilig; daarom hebben we Postfix opnieuw gekozen.
installatie
als u geen Postfix op uw machine hebt, installeer het dan eerst. Je hebt ook het mailpakket Mailutils nodig, dat programma ‘ s bevat die nodig zijn om Postfix te laten functioneren:
sudo apt install mailutils postfix
In het Postfix configuratie venster, moet u de internet Site mail configuratie kiezen. Tot slot moet u de systeemmailnaam opgeven. Het moet hetzelfde zijn als de naam die u hebt toegewezen aan de domeinnaam die naar uw server wijst. Laten we gebruiken example.com.
configuratie
nu, laten we Postfix configureren om verzoeken te verwerken om e-mails van localhost te verzenden. Hiervoor moet u het hoofdconfiguratiebestand aanpassen main.cf
:
sudo nano /etc/postfix/main.cf
Scroll naar beneden naar de regel inet_interfaces = all
en vervang deze door inet_interfaces = loopback-only
ook moet u mydestination
wijzigen, die de lijst met domeinen specificeert. Het zou er zo moeten uitzien:
mydestination = $myhostname, localhost.$example.com, $example.com
sla het bestand op en herstart Postfix met:
sudo systemctl restart postfix
probeer aan het einde een test-e-mail te verzenden:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
Voor Windows
er zijn verschillende softwareopties om een SMTP-server op Windows op te zetten, waaronder MailEnable en Apache James. Maar we hebben gekozen voor de meest populaire, genaamd hMailServer.
installatie
Download hier de nieuwste versie en installeer deze. Aan het begin van de installatie moet u aandacht besteden aan het volgende:
- in het venster componenten selecteren, zorg ervoor dat de volledige installatie is gekozen. Server-en Beheercomponenten moeten worden gecontroleerd.
- controleer de ingebouwde database-engine in het venster type database selecteren.
- maak in het Beveiligingsvenster van hMailServer een wachtwoord aan voor de standaardgebruiker.
eenmaal geïnstalleerd, start hMailServer, en nu laten we het configureren.
configuratie
- klik op Verbinden in het startvenster en voer het wachtwoord in dat u hebt ingesteld tijdens de installatie.
- klik op domein toevoegen en voer uw domeinnaam in het overeenkomstige veld in. Trouwens, u kunt een valse domeinnaam gebruiken omdat de echte niet nodig is om e-mails te verzenden. Maar, in dit geval, zorg ervoor dat de nep-domein niet echt bestaat. Klik op Opslaan en u ziet uw domein in het linker tabblad.
- Selecteer de map Accounts in het linker tabblad en klik op Toevoegen … om er een te configureren. Het enige wat u hier hoeft te doen is een naam in te voeren in het adresveld. Dit zal uw e-mailadres instellen. Optioneel kunt u een wachtwoord opgeven. Klik op Opslaan en ga naar de Instellingen in het linker tabblad.
- vouw de Instellingen thread uit en selecteer protocollen. Verwijder het vinkje POP3 en IMAP. Voor meer informatie over deze protocollen, lees onze blog post IMAP vs. POP3 vs. SMTP. Klik Op Opslaan.
- nu, selecteer Geavanceerd in de Instellingen thread en voer localhost in het standaard domein veld in het rechter tabblad. Klik Op Opslaan. Als u de Geavanceerde instellingen wilt gebruiken, selecteert u Auto-ban en schakelt u het selectievakje Ingeschakeld uit. Klik Op Opslaan.
- vouw aan het einde de hulpprogramma ‘ s-thread uit en selecteer diagnostiek. Selecteer het domein waarop u tests wilt uitvoeren en klik op Start. We zijn niet geïnteresseerd in alle tests, alleen servergegevens verzamelen en uitgaande poort testen. Deze moeten groen gemarkeerd zijn.
dat is het. Nu kunt u uw test e-mail te sturen. Dit kan worden gedaan met PowerShell-het is snel en eenvoudig. Voor meer informatie hierover, lees onze blogpost e-mails verzenden van PowerShell. Voer de volgende regel uit (vergeet niet om uw gegevens in te voeren):
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
in het pop-upvenster moet u uw wachtwoord invoeren.
is een SMTP-server goed voor testen?
in de meeste gevallen zetten mensen lokale SMTP-servers op voor testdoeleinden. Als je een app ontwikkelt die e-mails verstuurt, moet je deze functie testen, en een echte SMTP-server die op je lokale machine draait lijkt misschien een goede optie. Maar is dat zo? Aan de ene kant is het niet lastig om een lokale SMTP-server te installeren en te configureren. Er is echter een veel betere oplossing.
Als u Mailtrap gebruikt voor het testen, krijgt u een geavanceerde tool gebaseerd op een nep SMTP-server. Het betekent dat uw app e-mails zal verzenden, maar zal ze niet daadwerkelijk leveren. Uw uitgaande e-mail zal eindigen in de Mailtrap Demo inbox. U hoeft zich dus geen zorgen te maken over echte e-mailontvangers en het controleren van de spammap elke keer dat u tests uitvoert. Er is helemaal geen installatie nodig. Het enige wat u hoeft te doen is uw SMTP instellingen bij te werken met mailtrap referenties. U kunt ook een kant-en-klare codefragment kopiëren en plakken. Verschillende integraties zijn beschikbaar voor de meest voorkomende frameworks en programmeertalen. Voor meer informatie over andere voordelen en mogelijkheden, lees de Mailtrap Getting Started Guide.
om
af te ronden kan het draaien van een lokale mailserver soms lastig zijn. Veel kennis en inspanning zijn nodig om een goede e-mail deliverability met behulp van uw eigen SMTP-server te bereiken. Misschien is het een goede optie voor testdoeleinden, maar Mailtrap, of andere e-mail testtools, zal het beter doen. Dus, heb je eigenlijk een lokale SMTP-server nodig? Jij bent de enige die dat kan beantwoorden. Succes!