Не всегда работает PHP mail

Привет всем . Такая проблема. С сайта должны отправляться письма клиенту и админу. Но они доходят не всегда. В логах домена при обращении к php файлус кодом отправки почты периодически возникает ошибка 500.
Хостинг говорит, что все ок, да и письма через стандартную контактную форму на Wordpress доходят админу, а вот через писаный код доходят не всегда.

Может в коде причина, гляньте, пожалуйста, в чем дело. Никак не могу понять:
pastebin.com/A4iDTbju

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Возможно не прав но помоему там нужно сделать экранацию кавычек на строке 15

500 ошибка обычно говорит о том, что произошла ошибка при выполнении кода. Нужно смотреть логи, либо отлавливать самостоятельно и делать обработку их (Exceptions). Тогда и станет понятно, что конкретно не так.

Еще можете попробовать mailgun.com для отправки писем, там до 10К писем в месяц бесплатно mailgun.com/pricing, ну и логов будет больше, чем сейчас.

Раз 500, смотрите логи ошибок

Не совсем в тему, но в свое время пришли к выводу, что лучше не пользоваться почтовыми серверами на хостинге (или даже собственном сервере), а завести бизнес-аккаунт хорошего почтового сервиса (например gmail) и отправлять все письма с него, используя SMTP, надежность возросла.

Из-за риска выгрести бан просто по причине что какой-то глупый мылсервер вдруг посчитал спамом все письма? Или есть какие-то другие проблемы?

У меня сейчас в аккурат та же проблема, но наоборот: не понравилось пользоваться сторонним сервером, потому что он выёжывается с DKIM, а без него не комильфо.

Из-за риска выгрести бан просто по причине что какой-то глупый мылсервер вдруг посчитал спамом все письма?
в основном да, это было очень нежелательно

Вероятнее всего проблема в самой операционке или настройке твоего веб-сервера. Если линуха, копай в сторону ограничения количества одновременно открытых файлов процессами: «soft nofile», «hard nofile» и соответственно команд
ulimit -Hn твоя-цифра
ulimit -Sn твоя-цифра
(или без цифры, чтобы увидеть текущий)

Подписаться на комментарии