PrestaShop 9 neposílá e-maily přes SMTP: chyba portu 587

Nástroje · 6 min čtení

PrestaShop 9 neposílá e-maily přes SMTP: chyba portu 587

Pondělí ráno. Zákazník se ptá, jestli jeho sobotní objednávka prošla, protože mu nic nepřišlo. Otevřete administraci a je tam, zaplacená. Stejně tak nedělní a všechny objednávky z celého týdne. Váš e-shop prodává, ale od přechodu na PrestaShop 9 nikomu nedorazil jediný e-mail.

Pokud posíláte přes vlastní poštovní server – OVH, Microsoft 365, Gmail nebo server vašeho hostingu – na portu 587, nic jste nenastavili špatně. Je to chyba PrestaShopu 9, která je ve všech verzích od 9.0.0 do 9.1.5 a opravila ji až verze 9.2 vydaná 30. září 2026.

Jak poznat, že jde o váš problém?

Jděte do Nástroje → Chybové záznamy. Pokud po každé objednávce zůstal řádek jako tento, jde o váš případ:

Mailer Error: Connection could not be
established with host
"ssl://ssl0.ovh.net:587":
stream_socket_client(): SSL operation
failed with code 1. OpenSSL Error
messages: error:0A00010B:SSL
routines::wrong version number

Název serveru bude váš. Chybu prozradí ssl:// na začátku a :587 na konci. Stejnou zprávu dostanete hned, když v Nástroje → E-maily kliknete na „Odeslat testovací E-mail“.

Zákeřné je všechno, co se nestane. Zákazník nevidí žádnou chybu, objednávka se uloží a platba projde. Proto trvá dny, než si toho všimnete, a skoro vždycky vám to řekne zákazník, který se ptá na fakturu nebo číslo zásilky.

Co se v PrestaShopu 9 změnilo?

S poštovním serverem se dá šifrovaně mluvit dvěma způsoby. V jednom je všechno šifrované od první sekundy, a to čeká port 465. Ve druhém nejdřív pozdravíte nešifrovaně a pak požádáte o přechod na šifrovaný rozhovor: to je port 587. Jsou to dvoje různé dveře a na každé se klepe po svém.

Až do PrestaShopu 8 klepala volba „TLS“ v administraci na dveře 587 tak, jak to ty dveře čekají. PrestaShop 9 vyměnil komponentu, kterou posílá e-maily (ze SwiftMaileru na Symfony Mailer), a cestou změnil, co ta volba dělá: „TLS“ teď šifruje od první sekundy. Klepe na 587, jako by to byl 465, server odpoví obyčejným pozdravem a PrestaShop, který čekal šifrovanou odpověď, mu nerozumí. To je to „wrong version number“.

Proto se to rozbije přesně při povýšení z 8 na 9: stejné nastavení, které fungovalo, přestane fungovat, aniž byste na cokoli sáhli. A proto zmizela volba „SSL“, kterou jste dřív měli: v PrestaShopu 9 nabízí rozbalovací seznam šifrování jen „Žádné“ a „TLS“.

Jak to dnes opravit bez zásahu do kódu?

Změníte to v Nástroje → E-maily s vybranou volbou „Nastavit vlastní parametry SMTP – pouze pro pokročilé uživatele“. Co zadat, záleží na portech, které váš poskytovatel přijímá, a ověřili jsme je jeden po druhém proti serverům jedenácti poskytovatelů:

  • Pokud váš poskytovatel přijímá port 465 – pošta, která je součástí hostingu OVH (MX Plan, ssl0.ovh.net), Gmail, IONOS, Hostinger, Brevo nebo Mailjet –: šifrování TLS a port 465. Takhle je nastavený náš vlastní e-shop a běží na PrestaShopu 9.
  • Pokud váš poskytovatel přijímá jen port 587 – Microsoft 365 (smtp.office365.com), OVH Email Pro (pro1, pro2 nebo pro3.mail.ovh.net) a OVH Exchange –: šifrování Žádné a port 587. S nimi ve verzích 9.0 a 9.1 „TLS“ nefunguje na žádném portu.

Víme, že to druhé působí špatně, protože tam stojí „Žádné“. Neznamená to ale, že vaše heslo putuje nešifrovaně. S touto volbou PrestaShop 9 pozdraví nešifrovaně, a jakmile server nabídne šifrování – a všechny tyhle ho nabízejí –, zašifruje rozhovor dřív, než pošle uživatelské jméno a heslo. Ověřili jsme to proti serverům Microsoft 365 a OVH: spojení je šifrované (TLS 1.3 u Microsoftu, TLS 1.2 u OVH) dřív, než odejdou jakákoli data.

Uložte, pošlete zkušební e-mail, a pokud dorazí, máte hotovo: objednávky od této chvíle své e-maily odešlou. Ty, které se cestou zasekly, se samy znovu neodešlou. Na stránce každé objednávky, v historii stavů, pošle tlačítko „Znovu odeslat E-mail“ e-mail daného stavu znovu, například platba přijata nebo objednávka odeslána.

Past, pokud přecházíte z PrestaShopu 8 se SSL

Pokud jste v PrestaShopu 8 měli vybrané „SSL“ s portem 465, po povýšení se dál posílá: PrestaShop 9 tu hodnotu zachová a zachází s ní jako se svým „TLS“. Problém přijde v den, kdy tu stránku otevřete a uložíte, i kvůli změně něčeho jiného. Protože „SSL“ už v rozbalovacím seznamu není, administrace ukáže „Žádné“, a to se uloží. Se „Žádné“ a portem 465 e-shop čeká na odpověď, která nikdy nepřijde, a v logu stojí Connection to "…:465" timed out.

Zreprodukovali jsme to na našem testovacím e-shopu. Než na té stránce cokoli uložíte, zkontrolujte, že šifrování říká, co chcete.

A v PrestaShopu 9.2?

Verze 9.2 to opravuje pořádně: „TLS“ zase funguje na portu 587, jako v PrestaShopu 8. Je to změna 42197 v projektu, která uzavírá hlášení otevřené v srpnu 2024. Do verze 9.1.5, poslední z řady 9.1, se nedostala: pokud máte jakoukoli 9.0 nebo 9.1, chybu máte.

Cokoli dnes podle tohoto článku nastavíte, bude po povýšení fungovat dál – „TLS“ s 465 i „Žádné“ s 587 posílají ve verzi 9.2 úplně stejně –, takže není co vracet. Opravte si e-maily hned a povyšte, až se vám to bude hodit, bez spěchu: verze 9.2 přináší velké změny, například novou jednostránkovou pokladnu, a vaše platební a dopravní moduly na ni musí být připravené. Takové povýšení se nejdřív testuje na kopii e-shopu.

Pokud posíláte přes Microsoft 365, poznamenejte si prosinec

Microsoft oznámil, že na konci prosince 2026 ve výchozím nastavení vypne odesílání z aplikací s uživatelským jménem a heslem, což je přesně způsob, jakým posílá PrestaShop. Správce vašeho účtu Microsoft ho bude moct znovu zapnout a datum definitivního zrušení se oznámí ve druhé polovině roku 2027. Pokud váš e-shop posílá e-maily přes Microsoft 365, je teď dobrá chvíle přesunout ho na službu pro transakční e-maily, jako je Brevo nebo Mailjet, a to datum si odškrtnout.

Pořád to neposílá?

Log vám řekne, kam se dívat dál. Pokud v něm stojí Failed to authenticate, jde o uživatelské jméno nebo heslo: uživatelské jméno je vždycky celá adresa a v Microsoft 365 musí mít schránka zapnuté ověřované SMTP. Pokud v něm stojí timed out, buď ten port u vašeho poskytovatele neexistuje – Microsoft 365 a OVH Email Pro 465 nemají –, nebo vás chytila past rozbalovacího seznamu, nebo váš hosting nepouští provoz ven na tom portu.

A pokud chcete, aby se na to podíval někdo, kdo to už řešil, pošlete nám zprávu z logu a svou verzi PrestaShopu. Řekneme vám, co nastavit ve vašem případě, a pokud je za tím ještě něco dalšího, rozchodíme to.

Jakmile vaše e-maily zase odcházejí, ať stojí za otevření: o tom jsme psali v článku potvrzení objednávky je nejhorší stránka vašeho e-shopu.

Popište nám svůj případ

S čím vám můžeme pomoci

Zobrazit všechny služby →

Číst dál

Pomůžeme vám s vaším projektem? Pojďme si promluvit

Řekněte nám, co vaše firma potřebuje

Modul, aplikace, server, který vám dělá potíže, nebo něco naléhavého. Odpovíme do 24 hodin s pevnou nabídkou, cenou a termínem.