Joomla не надсилає листи

Joomla не надсилає листи. Could not instantiate mail function.

У цій статті ми розглянемо проблеми, що виникають з відправкою пошти на CMS Joomla.

Помилки, описані вище, можуть бути викликані багатьма причинами. У цій статті я спробував систематизувати інформацію щодо проблем із відправленням листів на Joomla і їх рішень.

1. Ви налаштовуєте модуль зворотний зв'язку. відправку пошти і тп на локальному сервері.

На локальних серверах на кшталт Denver або WAMP за замовчуванням стоять заглушки, які перешкоджають відправці листів. Як правило, після перенесення сайту на хостинг ці проблеми пропадуть.

2. Ви отримуєте листи на yandex або mail пошту.

Ці поштові служби з великою підозрою ставляться до отримуваних повідомлень. Якщо, наприклад, ваш сайт висить на одному IP c розсильників спаму, велика ймовірність, що і ви потрапите в список підозрілих відправників і будете отримувати повідомлення в папку спам або з великою затримкою або повідомлення в принципі не будуть доходити. Як можна вирішити цю проблему? Нижче мої поради від простого до складного.

2б. Налаштуйте відправку через SMTP. Це можна зробити буквально за 5 хвилин, інструкцію можна знайти тут. На мій погляд самий простий і надійний спосіб.

2в. Якщо відправка через SMTP вам не підходить. можна спробувати створити ящик на вашому хостингу. він буде виглядати приблизно так название_ящика@ваш_домен.ru і додати його в поле email-сайту на вкладці сервер. Поштовий сервер буде бачити в вихідних пошту з вашим доменом і траст листи підвищиться. Зробити це можна в панелі адміністратора, «System-> Global configuration» ( «Система-> Загальні налаштування"). В цьому розділі відкрити вкладку Server (Сервер) і в правому нижньому кутку знайти настройки відправлення пошти.

Joomla не надсилає листи

2г. Налаштуйте spf. Spf це верифікація вашого домену, налаштовується на хостингу за пару хвилин при наявність інструкції. Так як я не знаю ваш хостинг, то інструкцію вам доведеться знайти самостійно, зазвичай досить набрати в пошуку щось на кшталт «spf beget» (Бегета це мій хостинг) і відкрити першу заслання. Перед гугленіем можна спробувати подивитися тут. там розміщені настройки для купи популярних хостингів.

2д. Налаштувати DKIM. DKIM це цифровий підпис, налаштовується теж по інструкції хостингу, але на відміну від spf послуга може бути платною. Перед придбанням рекомендую вам зв'язатися зі своїм хостером і уточнити можливі причини не доводиться листів.

3. Проблеми з PHP Mailer.

Досить поширений випадок. В Joomla передбачено 3 механізму відправки листів: PHP Mail, Sendmail і SMTP. За замовчуванням використовується перший і з ним часто бувають проблеми. Нижче я пропоную кілька шляхів вирішення проблеми.

Joomla не надсилає листи

3б. Також можна спробувати полагодити PHP Mailer вручну. Для цього треба знайти і відкрити файл: "корінь сайту / libraries / phpmailer / phpmailer.php» або «корінь сайту / libraries / vendor / phpmailer / phpmailer / class.phpmailer.php» для пізніх версій джумли. Далі знайти рядок:

$ Params = sprintf ( '- oi -f% s', $ this-> Sender);

Ймовірний номер рядка 707 або 1161. І дописати під нею:

$ Params = '';

Ваш код тепер виглядає так:

$ Params = '-oi -f% s';

$ Params = sprintf ( '- oi -f% s', $ this-> Sender);

$ Params = '';

Або в разі новішої версії замінити шуканий рядок:

код:
$ Params = sprintf ( '- f% s', $ this-> Sender);

Змінюється на:
$ Params = sprintf ( '- f% s');

4. Проблеми з хостингом.

Можливо ви використовуєте безкоштовний тариф, на якому закрита відправлення листів або він включає цей функціонал по вимоги. Як би там не було, вам потрібно написати в службу підтримки і пояснити проблему.

Схожі статті