Chyba při odeslání mailu – maximální délka řetězce v setFrom()
- roman.campula
- Člen | 60
Zdravím,
narazil jsem na situaci, kterou si nedokážu vysvětlit. Snažím se odeslat
mail pomocí
Tato funkce, ve které jsem pro případ této otázky upravil parametry, funguje.
Jenže jakmile změním setFrom a přidám jeden znak
Tak už se mail neodešle a vrátí se chyba
SMTP server did not accept . with error: 550 5.7.0 From address is not one of
your addresses
Zřejmě proto, že aplikace neodešle jako odesílatele celý řetězec, ale
jen znak .
A nebo odešle, ale SMTP server to není schopen
zpracovat.
Pokud použiji v odesílateli diakritiku, např.
Tak už to zhavaruje při mnohem menším počtu znaků.
Existuje nějaký limit, jak dlouhý může být řetězec v setFrom()? Můj
příklad s aaabbb… je poněkud absurdní, nicméně nezvládne to ani
běžné zadání, jako
právě $mail->setFrom("test@test.cz", "Čeněk Starý")
SMTP server je iCloud Mail.
Díky za nápady
- nightfish
- Člen | 525
@romancampula
Jak vypadá komunikace s tím SMTP serverem?
Používáš Nette SmtpMailer? Pokud ano, tak si do jeho metody
protected function write(string $line, $expectedCode = null, ?string $message = null): void
přidej nějaké logování toho $line
do souboru
(v nejjednoduší podobě třeba jako
\file_put_contents('cestaksouboru.log', $line, FILE_APPEND);
a pak
pošli posledních pár řádků z toho logu. Mělo by z něj být patrné,
jakou adresu Nette v rámci From hlavičky posílá a tedy jestli je problém
na straně Nette nebo až někde dál v řetězci. Alternativně je možné
zjistit stejnou informaci debuggerem, případně dumpem třeba
přes Tracy.
- roman.campula
- Člen | 60
Díky za nasměrování.
Verze s
setFrom("info@meteo-tvarozna.cz", "abcdabcdabcd abcde abcde abcde abcde abcde a")
Verze s
setFrom("info@meteo-tvarozna.cz", "abcdabcdabcd abcde abcde abcde abcde abcde ab")
Je tam podivné zalomení, viz obrázek: https://ibb.co/6BH93Cs
A když tam přidám diakritiku, je to ještě zajímavější. Verze
s setFrom("info@meteo-tvarozna.cz", "Meteo Tvarožná")
Editoval roman.campula (16. 2. 2024 15:12)
- nightfish
- Člen | 525
@romancampula Podle zalomení ve 2. ukázce tipuju, že to má na starosti tento kód: https://github.com/…MimePart.php#L293
Co se týká třetí ukázky, tak to je base64 kódování hlavičky, která obsahuje znaky mimo 7bit ASCII.
Osobně si myslím, že Nette v tomto případě posílá data správně a chyba je na straně zpracování v SMTP serveru. Co se stane, když stejnou zprávu (např. z ukázky 2), pošleš přes nějaký jiný mail server (třeba smtp.gmail.com, SMTP server webhostingu atd.)?
- roman.campula
- Člen | 60
Pokud použiji SMTP Gmailu, tak to funguje. Zajímavé. Takže Apple neumí zpracovat mého odesílatele, super… Díky za podporu.