Fórum Root.cz

Hlavní témata => Server => Téma založeno: ZAJDAN 27. 04. 2018, 18:37:15

Název: PHP mail - Sender verification failed
Přispěvatel: ZAJDAN 27. 04. 2018, 18:37:15
Ahoj...
na webu mam dve sekce ze kterých po kliknutí na button proběhne odeslání emailu.
Z jedné těchto sekcí to funguje, ale v druhé ne. V logu nacházím:

/var/log/exim4/mainlog:
Kód: [Vybrat]
SMTP error from remote mail server after RCPT TO:<cbr@mojedomena.cz>: host mail.mailserver.net [111.222.333.444]: 550-Verification failed for <www-data@webserver>\n550-Unrouteable address\n550 Sender verification failed
domény v adresách a IP jsou ilustrační

kdyby to nefungovalo v rámci celého webu/serveru....tak OK, ale proč z jednoho scriptu jo, z druhého ne v rámci jednoho webu je mi podivné.
Název: Re:PHP mail - Sender verification failed
Přispěvatel: Lol Phirae 27. 04. 2018, 19:27:01
domény v adresách a IP jsou ilustrační

Ano, obfuskovat IP adresy na nesmyslné hodnoty je u chyby "unroutable address" výborný nápad.  ::) ::) ::)

#facepalm
Název: Re:PHP mail - Sender verification failed
Přispěvatel: Miroslav Šilhavý 27. 04. 2018, 20:18:15
kdyby to nefungovalo v rámci celého webu/serveru....tak OK, ale proč z jednoho scriptu jo, z druhého ne v rámci jednoho webu je mi podivné.

Protože máte jako odesilatele www-data@webserver, což je neexistující adresa. Někteří příjemci to ověřují.
Obecně je dost přihlouplé používat mail() funkci, webservery mají smtp službu spíš nouzovou, často je IP webserveru na mnoha smtp blacklistech atd. Mělo by patřit k dobré praktice odesílat poštu na mailserver poskytovatele - a ten ji buďto přijme na základě povolené IP adresy odesílajícího webserveru (ale to je dnes méně časté, protože na to by se lepily spam scripty), nebo po ověření.
Název: Re:PHP mail - Sender verification failed
Přispěvatel: ZAJDAN 27. 04. 2018, 22:39:48
napadlo mne že mám scanner, kde lze scan odesílat na mail což běžně používám a tak jsem si řekl, že to nstavím stejně jak na scanneru, ale vrací mi to chybu:
550 Access denied - Invalid HELO name (See RFC5321 4.1.1.1)
nasel jsem rekci na podobný problém:
Kód: [Vybrat]
https://stackoverflow.com/questions/3525818/smtp-configuration-for-php-maila nainstaloval tedy : pear install Mail

a zkouším řešení dle doporučení z uvedeného webu, kde se dá definovat sender, ale zatím bez úspěchu.
Na scaneru je nastaveno:    Ověření SMTP - Vypnuto
Název: Re:PHP mail - Sender verification failed
Přispěvatel: Miroslav Šilhavý 28. 04. 2018, 06:22:59
napadlo mne že mám scanner, kde lze scan odesílat na mail což běžně používám a tak jsem si řekl, že to nstavím stejně jak na scanneru, ale vrací mi to chybu:

Nechcete opustit styl práce pokus-omyl a spíš si o věcech něco přečíst? Spousta Vašich dotazů tady napovídá, že si se situací poradíte, ale nechcete číst :).
Název: Re:PHP mail - Sender verification failed
Přispěvatel: ZAJDAN 28. 04. 2018, 10:30:20
Je mi jasné, že ten scanner používá jinej mechanismus k odeslání mailu, ale čeho se mohu držet je to, že mu to projde bez SMTP ověření.
Co mi ale není jasné, jak je to v případě PHP. Kdy a v jakých případech se použije v systému nainstalovaný Exim, popřípadě jak to prověřit.
Název: Re:PHP mail - Sender verification failed
Přispěvatel: Miroslav Šilhavý 28. 04. 2018, 10:33:56
Je mi jasné, že ten scanner používá jinej mechanismus k odeslání mailu, ale čeho se mohu držet je to, že mu to projde bez SMTP ověření.
Co mi ale není jasné, jak je to v případě PHP. Kdy a v jakých případech se použije v systému nainstalovaný Exim, popřípadě jak to prověřit.


Lokálně na Exim projde asi cokoliv, ale záleží na tom, jak e-mail naformulujete. Tedy např. pole "From". Máte v zásadě dvě možnosti: a) nastavíte mailserver na webserveru prakticky "dokonale" a budete ho udržovat "v kondici" a naučíte se správně formulovat e-maily, b) využijete SMTP providera a třeba nějakou knihovnu, tkerá e-mail nastaví správně.

To, že nějaký jiný program a nějakým jiným směrem funguje, to přeci není důkaz správné konfigurace!
Název: Re:PHP mail - Sender verification failed
Přispěvatel: ZAJDAN 28. 04. 2018, 10:48:42
předem děkuji za Vaši trpělivost i s takovou Lamou jako já, omlouvám se...snažím se
b) využijete SMTP providera a třeba nějakou knihovnu, tkerá e-mail nastaví správně.

Tohdle je přesně to, co mě udivuje. Scanner ma nastaveno odesilat email přes SMTP mail.mojefirma.cz bez SMTP ověření
V PHP( PEAR Mail package) jsem pochopil že SMTP server definuji přes proměnou: $host = mail.mojefirma.cz; a klidně použít
'auth' => false, když to projde bez ověřování i scanneru.

Mimo to jsem si teď všiml, že v php.ini(tam mne zajímá blok pro UNIX) mám nastaveno sendmail_path = /usr/sbin/sendmail -t -i což vypadá, že to to neposílá na Exim.
Zde https://www.linuxquestions.org/questions/programming-9/php-mail-function-not-working-with-exim-505701/ (https://www.linuxquestions.org/questions/programming-9/php-mail-function-not-working-with-exim-505701/)
někdo doporučuje upravit na:
sendmail_path = /usr/sbin/sendmail.exim -t
sendmail_from = email@thebikeshoppe.com


ted jsem z toho tedy pěkně zmatený
Název: Re:PHP mail - Sender verification failed
Přispěvatel: ZAJDAN 28. 04. 2018, 11:41:02
měl jste pravdu!
Je-li apache, php i exim4 nainstalované z distribučních balíků, funguje odesílání mailů bez jakýchkoliv zásahů, je-li tedy exim správně nakonfigurovaný. V mím případě jsem neměl správně nastavený Exim
...nastavil jsem tedy remote smtp pomocí dpkg-reconfigure exim4-config
kde jsem v General type of mail configuration: mail sent by smarthost; received via SMTP or fetchmail
a
IP address or host name of the outgoing smarthost: mail.mojefirma.cz::25

mail již dorazí k cíli
díky!
kde se oficiálně mohu dočíst, že Je-li apache, php i exim4 nainstalované z distribučních balíků poteče vše z PHP přes Exim?