PHP mail - Sender verification failed

ZAJDAN

  • *****
  • 2 091
    • Zobrazit profil
    • E-mail
PHP mail - Sender verification failed
« kdy: 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é.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Lol Phirae

Re:PHP mail - Sender verification failed
« Odpověď #1 kdy: 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

Re:PHP mail - Sender verification failed
« Odpověď #2 kdy: 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í.

ZAJDAN

  • *****
  • 2 091
    • Zobrazit profil
    • E-mail
Re:PHP mail - Sender verification failed
« Odpověď #3 kdy: 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
« Poslední změna: 27. 04. 2018, 22:48:27 od ZAJDAN »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:PHP mail - Sender verification failed
« Odpověď #4 kdy: 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 :).


ZAJDAN

  • *****
  • 2 091
    • Zobrazit profil
    • E-mail
Re:PHP mail - Sender verification failed
« Odpověď #5 kdy: 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.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:PHP mail - Sender verification failed
« Odpověď #6 kdy: 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!

ZAJDAN

  • *****
  • 2 091
    • Zobrazit profil
    • E-mail
Re:PHP mail - Sender verification failed
« Odpověď #7 kdy: 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/
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ý
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 2 091
    • Zobrazit profil
    • E-mail
Re:PHP mail - Sender verification failed
« Odpověď #8 kdy: 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?
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.