v blogu Nejlepší bezplatné SMTP servery jsme se dotkli cloudových řešení pro odesílání e-mailů. Ty jsou zcela běžné pro všechny velikosti projektů. Ale co když nechcete používat služby přenosu e-mailů Gmail SMTP nebo jeho alternativy? V tomto článku vás naučíme, jak nastavit místní server SMTP a zbavit se závislostí na odesílání e-mailů.
opravdu potřebujete SMTP server?
použití odchozího SMTP serveru je tradiční způsob odesílání e-mailů. Alternativním řešením je obejít SMTP server a odeslat přímo na místo určení. Je známý jako přímé odesílání a můžete jej použít prostřednictvím konkrétních e-mailových softwarových programů. Přímé odeslání však není příliš spolehlivé, a tady je důvod:
- nelze jej použít, pokud je port 25 blokován vaším ISP.
- je to nevhodné pro hromadné e-maily kvůli více připojení k mnoha různým serverům.
- nemůže odesílat neosobní e-maily.
- může být blokován e-mailovými filtry, protože e-maily nejsou odesílány z běžného SMTP serveru.
pojďme dát přímé odeslání pryč. Co by vás mohlo zajímat, je důvod, proč byste spustit svůj vlastní SMTP server.
klady a zápory lokálního SMTP serveru
klady | nevýhody |
---|---|
|
|
některá cloudová řešení, jako jsou Mailgun a SendPulse, poskytují také všechny výše uvedené výhody. Všechny tyto funkce jsou však placeny a stále se musíte spolehnout na službu třetí strany. Místo toho můžete v počítači nastavit server SMTP pomocí konkrétního softwaru.
požadavky na lokální SMTP server
zatím neexistují žádné specifické požadavky. Přesto byste měli být připraveni na následující:
- Někteří poskytovatelé internetových služeb mohou zablokovat port 25. Můžete to vyřešit tím, že se obrátíte na svého poskytovatele ISP a dozvíte se o omezeních, která mohou uložit. Také musíte požádat o správný server DNS a povolení pro rozlišení záznamu MX.
- u hromadných e – mailů byste se pravděpodobně měli rozhodnout pro doménu a pevnou IP adresu s ní spojenou-tím se zvýší vaše odolnost vůči spamovým filtrům.
Rychlé nastavení SMTP serveru
nyní udělejme práci. Vzhledem k tomu, že v počítači nastavíte server SMTP, je důležité vědět, jaký operační systém se používá. Proto přezkoumáme tři způsoby, jak to udělat pro macOS, Windows a Linux.
Důležitá poznámka: Pokud posíláte testovací e-maily na skutečnou e-mailovou adresu, možná je nenajdete v doručené poště. Nezapomeňte zkontrolovat složku spam. ESP jako Gmail, Yahoo a další jsou podezřelí z nových agentů pro přenos pošty.
pro macOS
nejnovější verze macOS X jsou předinstalovány s postfixem-výchozím e-mailovým serverem. Takže vše, co musíte udělat, je vyladit konfiguraci serveru SMTP následujícím způsobem:
konfigurační soubor Postfix
- hlavní konfigurační soubor Postfix je první, s kým pracuje. Běh:
sudo vim /etc/postfix/main.cf
- řekněte Postfix, který název by měl použít k identifikaci na jiné poštovní servery. Přidejte následující řádky:
myhostname = john.example.commyorigin = example.com
pokud je vaše místní uživatelské jméno John, zdá se, že pošta pochází z [email protected].
- hostitel relé je stroj, který po ověření přijme e-maily a předá je serveru SMTP.
relayhost=mail.example.com:25
- musíte povolit SASL s dalším konfiguračním souborem, kde je heslo uloženo.
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/saslpasswd
- tento řádek znamená, že Postfix bude používat pouze připojení šifrovaná TLS.
smtp_tls_security_level = encrypt
- zde je, jak
main.cf
vypadá v plném rozsahu:
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
- uložte soubor pomocí:
sudo postmap /etc/postfix/main.cf
soubor s heslem SASL
- Vytvořte soubor
sasl_passwd
:
sudo vim /etc/postfix/sasl_passwd
- přidejte následující řádek:
mail.example.com:25 [email protected]:
- uložte soubor pomocí:
sudo postmap /etc/postfix/sasl_passwd
- a restartujte Postfix:
sudo postfix reload
místní SMTP server je připraven. Vyzkoušejte to zasláním testovacího e-mailu:
date | mail -s "Test email" [email protected]
Poznámka: tento instalační tok je vhodný pro počítače jiné než macOS, které mají pravidelného démona Postfixu.
pro Linux
většina linuxových distribucí je dodávána se dvěma nejběžnějšími implementacemi SMTP: Sendmail a Postfix. Sendmail má poměrně složitý design a je méně bezpečný; proto jsme znovu vybrali Postfix.
instalace
pokud na počítači nemáte Postfix, nainstalujte jej nejprve. Také budete potřebovat poštovní balíček Mailutils, který obsahuje programy nezbytné pro fungování Postfixu:
sudo apt install mailutils postfix
v konfiguračním okně Postfix budete muset vybrat konfiguraci pošty na internetu. Nakonec budete muset zadat název systémové pošty. Mělo by být stejné jako jméno, které jste přiřadili názvu domény směřujícímu k vašemu serveru. Pojďme použít example.com.
konfigurace
nyní nakonfigurujeme Postfix pro zpracování požadavků na odesílání e-mailů z localhost. K tomu je třeba vyladit hlavní konfigurační soubor main.cf
:
sudo nano /etc/postfix/main.cf
Přejděte dolů na řádek inet_interfaces = all
a nahraďte jej inet_interfaces = loopback-only
také je třeba upravit mydestination
, který určuje seznam domén. Mělo by to vypadat takto:
mydestination = $myhostname, localhost.$example.com, $example.com
uložte soubor a restartujte Postfix pomocí:
sudo systemctl restart postfix
na konci zkuste odeslat testovací e-mail:
echo "Test email body" | mail -s "Test email subject line" receipient's_email_address
pro Windows
existuje několik softwarových možností pro nastavení SMTP serveru v systému Windows, včetně MailEnable a Apache James. Ale my jsme se rozhodli pro nejpopulárnější, s názvem hMailServer.
instalace
Stáhněte si nejnovější verzi zde a nainstalujte ji. Na začátku instalace je třeba věnovat pozornost následujícím skutečnostem:
- v okně Vybrat komponenty se ujistěte, že je vybrána úplná instalace. Je třeba zkontrolovat součásti serveru a správy.
- v okně Vybrat typ databázového serveru zkontrolujte vestavěný databázový stroj.
- v okně Zabezpečení hMailServer vytvořte heslo pro výchozího uživatele.
po instalaci spusťte hMailServer a nyní jej nakonfigurujte.
konfigurace
- v úvodním okně klikněte na Připojit a zadejte heslo, které jste nastavili během instalace.
- klikněte na Přidat doménu a do příslušného pole zadejte název domény. Mimochodem, můžete použít falešné doménové jméno, protože skutečné není nutné odesílat e-maily. V tomto případě se však ujistěte, že falešná doména ve skutečnosti neexistuje. Klikněte na Uložit a na levé kartě se zobrazí vaše doména vytvořená.
- vyberte složku účty na levé kartě a klepněte na tlačítko Přidat … konfigurovat jeden. Vše, co musíte udělat, je zadat jméno do pole Adresa. Tím se nastaví vaše e-mailová adresa. Volitelně můžete zadat heslo. Klikněte na Uložit a přejděte na Nastavení na levé kartě.
- rozbalte podproces nastavení a vyberte protokoly. Zrušte zaškrtnutí políčka POP3 a IMAP. Pro více informací o těchto protokolech, přečtěte si náš blogový příspěvek IMAP vs. POP3 vs. SMTP. Klikněte Na Uložit.
- nyní v podprocesu Nastavení vyberte Upřesnit a do pole Výchozí domény na pravé kartě zadejte localhost. Klikněte Na Uložit. Chcete-li skončit s pokročilým nastavením, vyberte Automatický zákaz a zrušte zaškrtnutí políčka povoleno. Klikněte Na Uložit.
- nakonec rozbalte podproces Utilities a vyberte diagnostika. Vyberte doménu, na které chcete spustit testy, a klikněte na Start. Nemáme zájem o všechny testy, jen sbírat údaje o serveru a testovat odchozí port. Ty by měly být označeny zeleně.
to je vše. Nyní můžete poslat testovací e-mail. To lze provést pomocí PowerShell-je to rychlé a snadné. Pro více informací o tom, přečtěte si náš blog post odeslat e-maily z PowerShell. Spusťte následující řádek (nezapomeňte zadat 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
v rozbalovacím okně budete muset zadat heslo.
je SMTP server vhodný pro testování?
ve většině případů lidé nastavují lokální servery SMTP pro účely testování. Pokud vyvíjíte aplikaci, která bude odesílat e-maily, budete muset tuto funkci otestovat a skutečný server SMTP spuštěný na místním počítači se může zdát dobrou volbou. Ale je to tak? Na jedné straně není obtížné nainstalovat a nakonfigurovat místní server SMTP. Existuje však mnohem lepší řešení.
pokud používáte Mailtrap pro testování, získáte pokročilý nástroj založený na falešném SMTP serveru. To znamená, že vaše aplikace bude posílat e-maily, ale nebude ve skutečnosti doručit. Vaše odchozí pošta skončí v demo doručené poště Mailtrap. Takže se nebudete muset starat o skutečné příjemce e-mailů a kontrolu složky spamu při každém spuštění testů. Není nutná žádná instalace, vůbec. Vše, co musíte udělat, je aktualizovat nastavení SMTP pomocí pověření Mailtrap. Případně můžete zkopírovat a vložit úryvek kódu připravený k použití. Pro nejběžnější rámce a programovací jazyky jsou k dispozici různé integrace. Další informace o dalších výhodách a možnostech naleznete v příručce Mailtrap Začínáme.
zabalit
spuštění lokálního poštovního serveru může být někdy bolest. K dosažení dobré doručitelnosti e-mailů pomocí vlastního SMTP serveru je zapotřebí velké množství znalostí a úsilí. Možná je to dobrá volba pro účely testování, ale Mailtrap nebo jiné nástroje pro testování e-mailů to udělají lépe. Takže skutečně potřebujete místní SMTP server? Jste jediný, kdo na to může odpovědět. Hodně štěstí!