RealAdmin.ru

Установка и настройка sendmail под Ubuntu

Ubuntu,Ошибка
Категория: Админинг
03 Июн 2013 г. в 09:13

При отправке сообщения через форму обратной связи появляется ошибка с текстом «Произошла ошибка при попытке отправить почту. Could not instantiate mail function.» Возникать она может при отсутствии на хостинге агента sendmail или модуля php-mail.

На нормальных хостинговых площадках отправка почты через sendmail настроена по умолчанию, поэтому стоит поискать причины появления этой ошибки в настройках CMS или коде сайта. В моем случае веб-сервер настраивался мной и причина оказалась в отсутствии вышеуказанного агента и модуля. Вот как они устанавливаются в Ububntu:

1. Устанавливаем модуль php-mail если он еще не стоит:

sudo apt-get install php-mail

2. Устанавливаем sendmail:

$ sudo apt-get install sendmail
$ sudo sendmailconfig

Ответьте на вопросы, которые будут заданы. Ниже перечислены основные файлы, в которые будут внесены изменения:

/etc/mail.sendmail.conf
/etc/cron.d/sendmail
/etc/mail/sendmail.mc

3. Если все в порядке, правим «php.ini»

nano /etc/php5/apache2/php.ini

Находим закомментированую строку «;sendmail_path = » (поиск в nano ctrl+w). Заменяем на строку следующего содержания:

sendmail_path =  /usr/sbin/sendmail -t -i

4. Делаем рестарт Apache

sudo service apache2 restart

5. Проверить работоспособность sendmail можно двумя командами:

$ /usr/sbin/sendmail abc@gmail.com < "hey friend ... just thought to say hi."
или
$ sudo php -r "mail('you_mail@mail.ru', 'Тестовое письмо с вашего сайта', 'Привет. Это тестовое сообщение.');"

В течении минуты на указанный электронный адрес должно прийти письмо. Если этого не произошло, то следует посмотреть логи отправки в каталоге «/var/log/syslog». Если в логах появилось сообщение: «Connected time out», значит или firewall не пропускает пакеты через порт 25, или ионтернет-провайдер. Проверить это можно командой telnet:

telnet smtp.mail.ru 25

Если результатом работы команды стало так же «Connected time out», то разбирайтесь, где блокируется порт 25.

Теги:
Посмотрите похожее — 6
Комментарии — 8
  1. avatar Игорь 06 августа 2015, 01:39 #
    А на nginx как?
    1. avatar Simkin Andrew 06 августа 2015, 15:07 #
      Не помогу, хотя, судя по всему, в настройках nginx должен быть тот же файл php.ini и там нужно тоже раскомментировать соответствующу строку или просто прописать её. Остальное вроде без разницы. Но это имхо, точно не знаю.
    2. avatar Kenan 16 августа 2015, 10:55 #
      скажите пожалуйста, а как настроить всё это локально? раньше разрабатывал под виндой, там в готовых наборах уже всё есть и настроено, но теперь перешёл под убунту, хотя есть готовый хамп, но он мне не нравится, не удобно, поэтому всё установил и настроил через терминал, теперь надо чтобы sendmail никуда ничего не отправлял, а локально хранил в каком-то текстовом файле, не могли бы вы мне подсказать как это сделать? или хотя ссылку скинуть… а то гугл толком ничего не нашёл относительно локального применения, я даже и на русском искал, и на английском, всё равно бесполезно
      1. avatar Simkin Andrew 16 августа 2015, 12:26 #
        Не слышал про такие возможности, если всё же найдёшь как сделать — отпиши, интересно узнать.
        1. avatar Kenan 16 августа 2015, 13:21 #
          обязательно отпишусь, думаю что вс-таки должени быть вариант, вдруг человеку захотелось на природе поработать :) и дата-карта вне доступа связи)
      2. avatar Kenan 14 сентября 2015, 09:14(был изменён) #
        я нашёл способ!) anosov.me/2011/09/sendmail-dummy-in-ubuntu/
        1. avatar Simkin Andrew 14 сентября 2015, 09:27 #
          красавчик :)
          1. avatar Kenan 14 сентября 2015, 09:36 #
            благодарю :) это автор красавчик :D
        © REALADMIN.RU   2016 г.
        Страница сгенерирована: 0,1628 s | 10 mb.
        На каком уровне Вы играете в шахматы?
        О П Р О С
        Home Question Top