Перестала работать отсылка почты по SMTP

Началось с того, что почта перестала уходить через smtp.gmail.com.
Server Debug Information:
2014-04-28 09:41:08 SMTP ERROR: Failed to connect to server: (0)
SMTP connect() failed.
Упс. Ладно, думаю, гмыл, возможно, ввел новые правила, попробовал через другой аккаунт. Нет.
Попробовал smtp.yandex.ru. Нет.
Поставил Sendmail. Настроил. Из консоли письмо ушло. Попробовал в MODX. Нет.
Снес Sendmail. Поставил Exim. Настроил. Из консоли письмо ушло. Попробовал в MODX. Нет.
Зато ушло через php mail().
Ошибок в логах нет. Сижу в недоумении.
Виталий Батушев
28 апреля 2014, 09:44
modx.pro
1
5 842
0

Комментарии: 11

Василий Наумкин
28 апреля 2014, 13:57
0
1. Установить QuickEmail и вызвать
[[!QuickEmail?debug=`1`]]

2. Попробовать накатить последнюю версию MODX, возможно что-то поломалось в файлах системы.
    Виталий Батушев
    28 апреля 2014, 15:21
    0
    Вась, приведенный лог — это кусок лога, выводимого QuickEmail.
    Накатил — ситуация не поменялась.
    Бред какой-то.
      Василий Наумкин
      28 апреля 2014, 15:29
      0
      Ну тогда надо смотреть в лог ошибок php и mail.err.

      Что за хостинг? Может в поддержку написать и спросить, что изменилось?
        Виталий Батушев
        28 апреля 2014, 15:34
        0
        Смотрел. В php только сообщения об отсутствии favicon. В mail.err только старая фигня, когда настраивал то sendmail, то exim.
        Хостинг Linode.
          Василий Наумкин
          28 апреля 2014, 15:46
          0
          Давай данные от сервера и сайта на bezumkin@ya.ru — попробую помочь.
            Василий Наумкин
            28 апреля 2014, 15:57
            0
            У тебя в настройках сайта была включена работа через smtp, при этом сервер был localhost

            Отключил mail_use_smtp — и все заработало
              Виталий Батушев
              28 апреля 2014, 16:00
              0
              Ну дык это ж тогда идет через функцию php mail() или я чего-то недопонимаю?
              Давай внесу данные внешнего smtp-сервера — посмотришь на реакцию. Как вариант — внеси свои, проверь, потом удалишь.
                Василий Наумкин
                28 апреля 2014, 16:03
                0
                А зачем отправлять через удаленный сервер по smtp, если можно использовать для этого локальный sendmail?

                Или ты хочешь, чтобы php скрипт сам коннектился и висел, отправляя мыло, без логов и очереди сообщений?

                Лично я не использую smtp в MODX без особой необходимости (т.е. тупые шаред хостинги)
                  Виталий Батушев
                  28 апреля 2014, 16:04
                  0
                  Ну как-то долгое время так и работало без проблем — и вдруг на тебе.
                  К тому же стабильно теперь письма с сервера ложатся в спам.
                    Василий Наумкин
                    28 апреля 2014, 16:08
                    0
                    Ну тогда шли мне логин\пароль от аккаунта gmail для отправки писем — попробую настроить.
      Василий Наумкин
      28 апреля 2014, 16:49
      1
      0
      Не знаю, почему у тебя сломалось только сейчас, но проблема в отключенной функции stream_socket_client().

      Она указана у меня в моих скриптах автоустановки, и там я накидал всё потенциально опасное. Очевидно, что если на хостинге работаешь только ты, можно эту строку просто закомментировать.
      #php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source,stream_socket_client,stream_set_write_buffer,stream_socket_sendto,highlight_file,com_load_typelib

      Вообще, не уверен, что она действительно нужна, учитывая open_basedir, владельца процесса php и выставленные права на файлы.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11