Mam skrypt w PHP, który działa dobrze od miesięcy. Niedawno przestał działać.
Ten skrypt łączy się z Gmailem, aby wysłać e-mail do moich klientów.
Niedawno zacząłem otrzymywać ten błąd po uruchomieniu skryptu:
The SMTP connection failed to start [tls://smtp.gmail.com:465]:
fsockopen returned Error Number 0 and Error String 'php_network_getaddresses:
getaddrinfo failed: Temporary failure in name resolution'
Pamiętaj, że było to z zerowymi zmianami kodu.
Spojrzałem na mój resolv.conf i wydaje się być w porządku:
nameserver 208.67.222.222
Mogę ping ping gmail.com:
# ping smtp.gmail.com
PING gmail-smtp-msa.l.google.com (74.125.93.111) 56(84) bytes of data.
64 bytes from qw-in-f111.google.com (74.125.93.111): icmp_seq=1 ttl=247 time=26.7 ms
Mogę bez problemu połączyć się przez Lynx z Google i innymi witrynami.
Zalogowałem się na swoje konto Gmail bez żadnych problemów (nie ma też captcha).
Jestem na granicy rozumu. Czy ktoś ma jakieś pomysły?
G-Man
domain-name-system
php
email
smtp
getaddrinfo
GeoffreyF67
źródło
źródło
Odpowiedzi:
PHP ma problemy z dostępem do / etc / hosts lub /etc/resolv.conf: w PHP występuje od dawna problem związany z tym konkretnym błędem. Rozwiązaniem jest ponowne uruchomienie Apache lub cokolwiek wywołującego PHP lub upewnienie się, że pliki / etc / hosts i /etc/resolv.conf są czytelne przez to, co wywołuje PHP.
źródło
Właśnie spotkałem ten sam błąd i
zrobił lewę ...
źródło
Teraz spróbuj użyć Xdebug, aby zobaczyć, gdzie dokładnie jest problem…
Coś dobrego w logach?
źródło
Dodaj kod debugowania przed tym wierszem, aby upewnić się, że skrypt może go poprawnie rozwiązać.
źródło
Miałem dzisiaj tę wadę, jednak zdarzyło się to po określonym wydarzeniu, które każe mi myśleć, że mogłem znaleźć przyczynę.
Z powodu pewnych problemów ze sprzętem sieciowym zrestartowałem się ponownie przez serwer, a kiedy wrócił, było nieprawidłowe połączenie sieciowe w okablowaniu, co oznacza, że żaden serwer DNS nie był dostępny.
w międzyczasie została wywołana ta funkcja php, a potem już nigdy nie działała, dopóki nie zrestartowałem httpd.
Myślę, że błąd może odnosić się do awarii sieci (gdzie DNS jest nie tylko niedostępny, ale nieosiągalny, tj. Zła podsieć), a kiedy sieć następnie odzyskuje tę funkcję, DNS nie szuka ponownie.
To było kilka lat temu, może ten błąd jest teraz naprawiony w PHP?
źródło
Miałem następujący problem podczas aktualizacji Magento 2 do najnowszej wersji, więc podejrzewam, że jest to problem z konfiguracją php.
Rozwiązano go poprzez ponowne uruchomienie polecenia xampp poprzez.
Następnie ponowiłem
composer update
polecenie i zadziałało to jak urok.źródło