Задать вопрос
@victafonenko

Wordpress не отправляет почту — где что править и куда рыть?

Изначально сайт разрабатывал на локалке. Залил его на шаред-хостинг, все хорошо, за исключением того что не отправляется почта.
К примеру, когда в окне входа wp-admin, нажимаю "Забыли пароль" и делаю запрос на ссылку восстановления — просто появляется сообщение:
Сообщение не удалось отправить.
Возможная причина: на сервере отключена функция mail().


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

P.S - перешел на VPS, там развернул стандартный LAMP , разместил Wordpress. Все работает, кроме почты.
Только теперь Wordpress уверяет что письма шлет - а на деле ничего не доходит.

В чем может быть дело? Может это из-за переезда? Я использую плагин https://wordpress.org/plugins/duplicator/ .
Что в таких случаях надо делать, какие конфиги менять чтобы почта заработала?
  • Вопрос задан
  • 15228 просмотров
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 3
BBoyJuss
@BBoyJuss
WordPress, интерфейсы и все вытекающие
Как выход можно использовать SMTP, прописав код в functions.php вашей темы
// для примера, настройки Яндекса
add_action('phpmailer_init','send_smtp_email');
function send_smtp_email( $phpmailer ) {
    // Define that we are sending with SMTP
    $phpmailer->isSMTP();
 
    // The hostname of the mail server
    $phpmailer->Host = "smtp.yandex.ru";
 
    // Use SMTP authentication (true|false)
    $phpmailer->SMTPAuth = true;
 
    // SMTP port number - likely to be 25, 465 or 587
    $phpmailer->Port = "465";
 
    // Username to use for SMTP authentication
    $phpmailer->Username = "chtoto@yandex.ru";
    $phpmailer->From = "chtoto@yandex.ru"; // должен соответствовать  $phpmailer->Username

    $phpmailer->FromName = "от кого Имя или что то другое";
 
    // Password to use for SMTP authentication
    $phpmailer->Password = "password";
 
    // The encryption system to use - ssl (deprecated) or tls
    $phpmailer->SMTPSecure = "ssl";
}

можно специально для этого и ящик завести на Яндекс ПДД, только для корректной работы почты с Яндекс ПДД необходимо иметь доступ к хостингу (подтвердить права на владение доменом) и домену (прописать MX записи Яндекса), в остальном не критично использовать какой то другой ящик, у всех есть свои настройки SMTP
Ответ написан
@Chiron
Уточните у хостера, есть ли вообще поддержка отправки почты на сервере (мало ли). Уточните путь к sendmail на сервере и укажите его в настройках PHP.
php.net/manual/ru/mail.configuration.php#ini.sendm...

Обычно что-то вроде:

php_admin_value sendmail_path /usr/sbin/sendmail - в файле .htaccess
sendmail_path /var/qmail/bin/sendmail - в файле php.ini, если хостер поддерживает настройку PHP через него.
Ответ написан
Slams
@Slams
SELinux может блокировать доступ к почтовику. Решается выполнением команды:

setsebool -P httpd_can_sendmail=1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы