Как настроить отправку почты в joomla и virtuemart. Какой вариант выбрать smtp или mail.

Всем привет, рад видеть вас на страницах блога TakProstoTak.ru сегодня поговорим о joomla 1.5 и virtuemart, а конкретно как настроить почту в joomla и virtuemart. Многие компоненты joomla пользуются отправкой почты. Сама джумла тоже шлет письма пользователям по различным событиями (регистрация, форма обратной связи и т.д.). В подавляющем большинстве случаев отправка почты в джумле не вызывает трудностей, но как и везде бывают исключения из правил. Я часто делаю магазины на связке joomla 1.5 + virtuemart 1.1.9, на некоторых хостингах отправка почты в joomla не вызывает затруднений, joomla шлет письма о регистрации, из виртуемарта приходят письма о регистрации. На других хостингах все наоборот, почта не отправляется из joomla или перестают приходить письма о заказах в virtuemart. Иногда после переноса сайта на другой хостинг почта перестает отправляться. На бескрайних просторах интернета на эту тему можно найти много полезной и действенной информации, но эта информация решает частную проблему конкретной сборки на конкретном хостинге, комплексного решения не наблюдается на просторах рунета. Я постараюсь поставить точку в этом вопросе, описать все возможные проблемы возникающие при отправке почты в joomla и пути их решения.

head_postal

Отправка почты через php mail, через smtp. Основные настройки почты в joomla.


Заходим в панель администрирования : 1) Набираем в строке браузера _http://адрес_сайта/administrator 2) Вводим логин и пароль. У пользователя, под которым вы заходите должны быть права не ниже прав администратора, иначе вы не получите доступа к настройкам joomla. Переходим на вкладку "сервер"

tab_server

Справа в группе настроек под названием "Установки почты" располагаются настройки почты joomla. Самый распространенный способ отправки  через функцию php mail. Выбираем именно этот способ отправки почты - php mail function,  указываем Адрес отправителя и Имя отправителя.

nastr_mail
Отправка почты в joomla может происходить тремя различными способами: 1) отправка почты через функцию php mail 2) отправка почты через smtp сервер. 3) отправка почты через sendmail. Первый способ наиболее распространен и прост. Вы просто указываете (как на рисунке выше) способ отправки (PHP mail function), адрес отправителя, Имя отправителя (эти данные будет видеть получатель письма). Далее в тех местах, где нужно отправить письмо joomla будет вызывать функцию php mail и если сервер поддерживает эту функцию, то почта должна отправляться без проблем, есть еще нюансы их мы рассмотрим ниже.
Отправкой почты через smtp сервер часто пользуются, когда не работает функция php mail, sendmail сервера не работает или настроен криво. Если вы используете джумлу на локальном компьютере под денвером, то почта ходить у вас не будет просто так, нужно будет покопаться в конфигах денвера и задать необходимые настройки, дело в том, что sendmail занимается отправкой почты, а в денвере вместо сендмайла стоит заглушка, которая просто складывает письма в файл. Типичные настройки для smtp отправки почты через сервер mail.ru (smtp.bk.ru) приведены ниже. Способ отправки - SMTP сервер, адрес отправителя, имя отправителя, ставим галочку - использовать SMTP авторизацию, Указываем smtp порт, smtp логин (как правило, часть email адреса до @), smtp пароль, адрес smtp сервера.
nastr_mail_smtp
Если вы используете смтп отправку, то адрес отправителя должен соответствовать аккаунту, через который идет отправка иначе письмо не будет отправлено, почтовик пометит его как спам, по крайней мере, на mail.ru так происходит.

Настройка почты в virtuemart 1.1.9

Настройка почты в virtuemart делается предельно просто. Заходим в магазин (Компоненты->Virtuemart) далее магазин->Информация о магазине, на открывшейся странице правее расположена группа настроек "Контактная информация".
nastr_mail_vm
Нужно указать email куда будет приходить почта о заказах сделанных в магазине. Также заполните остальные поля которые могут фигурировать в письме.

Решение проблем связанных с отправкой почты в joomla и virtuemart

Самый простой способ отправки почты через функцию php mail, используйте этот способ отправки на вашем хостинге. Если вы в настройках указали способ отправки через php mail, а почта не отправляется, убедитесь, работает ли функция mail(). Для этого создайте в корне сайта файл test.php следующего содержания.

<?php
if (mail("vasha_pachta@mail.ru", "Тема", "бла бла...\nбла...бла...."))
  echo 'OK';
else
  echo 'ERROR';
?>

Запускаем файл: адрес_вашего_сайта/test.php, если после запуска скрипт выводит "ERROR", значит функция mail не работает на вашем сервере, стучите в техподдержку хостера, пускай подключают, все же 21 век на дворе). Если скрипт вывел "OK", значит письмо принято к отправке. После этого если письмо не дошло нужно подправить файл джумлы отвечающий за отправку почты. Открываем файл \libraries\phpmailer\phpmailer.php находим примерно в 472 строке след. участок кода

$params = sprintf("-oi -f %s", $this->Sender);

заменяем найденую строку на

$params = sprintf("-oi -f %s", $this->Sender);
$params = "";

В большинстве случаев проблема решается таким способом. Дело в том, что переменная $params используется в качестве 5го аргумента функции mail(), хотя обычно в функцию mail() достаточно передать 4 параметра.  На некоторых хостингах почта из joomla не отправляется с этим 5ым параметром.
если и после этого письма не отправляются значит они попадают в спам на стороне хостинга (возможно дело в адресе отправителя) либо на принимающей стороне (посмотрите в папке спам).
Настройку почты в joomla через smtp следует пользоваться, если ваш хостинг не поддерживает функцию mail. Если вы хотите отправлять почту через smtp.mail.ru (у вас должен быть аккаунт на мэйле), то у вас возникнет вопрос, какие настройки задавать? как настраивается smtp для почтовой программы the bat можно посмотреть здесь, смтп отправку в джумле можно настроить по аналогии. Настройку почты через смтп для других почтовиков ищите в Яндексе.

Давайте подведем краткий итог.  Основные проблемы при отправке почты в joomla: 1) Проблемы хостинга - не работает функция php mail, не отрабатывает функция php mail с 5ым параметром. 2) При smtp отправке почты письма блокируются сервером из-за неправильно указанного адреса отправителя или логина и пароля к smtp аккаунту.

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



Похожие статьи:
↑ Наверх ↑
  • Комментарии
  • Александр (20/04/2012 - 20:51):

    Спасибо, только у Вас нашел полную информацию по почте в joomla. Все получилось, благодарю!

  • TakProstoTak.ru (21/04/2012 - 17:02):

    Рад что пригодилась статья. Я в нее иногда сам подглядываю)

  • Кирилл (20/05/2012 - 10:36):

    Спасибо за этот хороший блог, но:
    нужно проверять, может письма отправляются, но приходят в спам! (на разных почтах по-разному, но такое случается часто)
    Я лично наверное полдня прогуглил эту тему, поизменял файлы, повставлял коды, настраивал джумловский smtp. А письма то нормально отправлялись, только сохранялись в спам. ;D

  • TakProstoTak.ru (21/05/2012 - 13:40):

    Кирилл: Спасибо, за оценку блога, проявленный интерес и конструктивную критику. Действительно вариант с блокировкой писем на стороне принимающего почтового сервера актуален и его тоже следует проверять. На майл.ру бывают проблемы с этим, чтобы отсеить этот вариант на этапе разработки лучше проверять работу сайта на менее требовательном почтовом сервисе.

  • Алексей Жуков (07/06/2012 - 21:07):

    Спасибо, полезная информация

  • Владимир (18/06/2012 - 1:59):

    Запустил файл тест. Получил “OK” и письмо пришло на почту. Но из самого сайта ни одно письмо не идет. Ни через регистрацию, ни через форму обратной связи, ни как. Если начинаешь регистрироваться то пишет, что все в порядке перейдите на почту и пройдите по ссылке, но на почте пусто. А в БД создается запись о новом пользователе и в менеджере пользователей появляется новый пользователь, только не прошедший регистрацию. В обратной связи пишет “Сообщение Спасибо за ваше письмо!” и на обоих адресах пусто. Если знаете подскажите где копать? JOOMLA 2.5.4. Заранее спасибо.

  • TakProstoTak.ru (18/06/2012 - 6:34):

    Алексей Жуков: Заходите по чаще, может еще что полезное напишу.

    Владимир: Какие настройки почты стоят в джумле? должна стоять “отправка через php mail()”. Из раздела “решение проблем…” вносили правки в файл \libraries\phpmailer\phpmailer.php? проблема 90% в этом.

  • Roman (05/08/2012 - 16:20):

    Тоже самое что и у ВЛАДИМИРА phpmailer.php правил….ничего не помогает… весь интернет слазил все перепровывал….У меня версия joomla 1.5.26… virtuemart 1.1.9 версия php —> 5.3.6 Что еще можно сделать… ??? Спасибо.

  • Алена (02/10/2012 - 18:33):

    А как настроить отправку почты через рф домен?
    К сожалению, Joomla помечает красным цветом ячейку “E-mail сайта”, если в нем указать ящик типа mail[собака]сайт.рф
    и соответственно ничего никуда не отправляется
    и ящик типа mail[собака]xn--80aswg.xn--p1ai тоже Joomle не по зубам :(
    а клиент хочет :(

  • TakProstoTak.ru (02/10/2012 - 20:23):

    Алена: возможно скоро про это напишу. Вообще кириллические домены это беда, к тому же, говорят их продвигать труднее.

  • Алена (03/10/2012 - 9:14):

    Vladimir: спасибо за ответ
    вдогонку, пока не написана Ваша статья, расскажу как я выкрутилась…
    адрес ящика прописала через phpadmin в БД в виде Punycode т.е как mail[собака]xn--80aswg.xn–p1ai.
    так хоть отправка почты идет, не до красоты пока (ведь имя ящика на странице контактов отображается в таком неприглядном виде)

  • TakProstoTak.ru (03/10/2012 - 13:59):

    статья на тему некорректной работы joomla с кириллическими почтовыми адресами http://takprostotak.ru/joomla/uchim-joomla-druzhit-s-kirillicheskoj-pochtoj-problemy-s-opravkoj-pochty-v-dzhumle-2.html

  • Иван (13/10/2012 - 16:46):

    Спасибо за статью, как оказалось у меня на хостинге(Timeweb) не работала функция mail, но благодаря диагностике по вашим советам проблему решили очень быстро)))

  • Ирина (23/11/2012 - 11:51):

    Здравствуйте, я небольшой чайничек, в джумле, подскажите подалуйста, как сделать что бы имя почты было бы именем сайта, ну после @. Заранее спасибо.

  • TakProstoTak.ru (23/11/2012 - 13:15):

    Иван: рад, что статья пригодилась.
    Ирина: Не встречал подобных вещей. имя почты не имеет ничего общего с именем сайта. Имя почты основывается на имени сайта. Если честно вопрос не понял ваш.

  • Александр (28/11/2012 - 21:43):

    Здравствуйте! Спасибо за полезную статью! Остался ещё один вопрос, подскажите пожалуйста, где можно поменять шаблон текста, который отправляется пользователю, после его регистрации?
    Имеется ввиду CMS Joomla 1.5

    Заранее благодарю!

  • TakProstoTak.ru (29/11/2012 - 7:06):

    Александр: Заходите по чаще. Если честно, то не знаю. Но вы натолкнули на идею очередной статьи. Следите за новостями по почте или RSS очередная статья будет на тему шаблонов писем.

  • vernomarket (25/12/2012 - 11:01):

    Спасибо ОГРОМНОЕ!!!

  • Сергей (02/01/2013 - 17:39):

    Здравствуйте.
    У меня сайт на Joomla 2.5.6
    Сделал все как у Вас в статье.
    Создал файл test.php и когда набрал site/test.php мне браузер выдал:Внимание: почта () был отключен по соображениям безопасности, в / sata1/home/users/fiching/www/www.site.ru/test.php на линии 2
    Помогите, ни как не могу отправить почту с сайта!

  • Всеволод (29/01/2013 - 17:13):

    Огромное спасибо! Помогло!

  • tattools (21/02/2013 - 20:33):

    Cпасибо тебе огромнейшее, брат!!!!! Твой сайт БЕСЦЕНЕН!!!!!Удачи тебе от всей души!!!! Алексей.

  • TakProstoTak.ru (22/02/2013 - 5:30):

    @Всеволод, #20:
    @tattools, #21:
    Заходите почаще, может еще чего полезного напишу.

  • Черкасов (05/03/2013 - 2:37):

    Прошу помощи!

    Пытаюсь изменить стандартное письмо регистрации пользователя – где-то стоит ограничение количества символов. Где копать, как сделать?

  • Черкасов (05/03/2013 - 2:38):

    зы: версия 1.5.24

  • wjwjwj (02/06/2013 - 18:52):

    Спасибо большое! Ваша статья меня просто спасла!

  • Бекарыс (17/07/2013 - 11:57):

    Здравствуйте. Спасибо за очень полезную статью, все сделал как вы сказали, а точнее написали, но вот одна проблема, когда заполняешь поле email и вместо стандартного пишешь @gmail или другие почты то на странице выходит надпись “PHPMAILER_FROM_FAILEDemailname@gmail.com” и почта не отправляется, как можно это решить?

  • TakProstoTak.ru (17/07/2013 - 12:18):

    @Бекарыс, #26:
    попробуйте в файле /components/com_contact/controller.php
    заменить строчку

    $mail->setSender( array( $email, $name ) )

    на

    $mail->setSender( array( $MailFrom, $FromName ) )
  • Бекарыс (17/07/2013 - 12:54):

    @TakProstoTak.ru, #27:
    Заменил, обновил страницу, все равно пишет “PHPMAILER_FROM_FAILEDemailname@gmail.com”

  • Бекарыс (17/07/2013 - 12:57):

    @TakProstoTak.ru, #27:
    Заменил, все равно то же самое выходит

  • TakProstoTak.ru (17/07/2013 - 13:08):

    @Бекарыс, #29:
    Можете исправить файл как было до этого. Причин много почему так у вас происходит. Может быть адрес почты находится в спам-листе хостинга (попробуйте другой ящик на гмайле). Это проблема ближе к хостингу, мне так кажеться.

  • Оксана (22/07/2013 - 11:28):

    У меня проблема – с настройкой почты. При нажатии кнопки отправить в джумле 1,5 выдает просто белую чистую страницу и все. При попытке запустить ваш тестовый скрипт – получилась та же белая чистая страница. Вы не могли бы подсказать – с чем это может быть связано?

  • TakProstoTak.ru (22/07/2013 - 12:10):

    @Оксана, #31: В админке включите режим отладки и посмотрите какую ошибку система выдает.

  • Денис (30/07/2013 - 9:46):

    @Roman, #8: У меня такая же проблема подскажи как ты исправил её. Заранее спасибо!

  • Александр (22/08/2013 - 16:44):

    Спасибо большое. Наконец уведомления приходят.

  • Елена (09/01/2014 - 16:17):

    Большое спасибо! Настроила почту, ура!

  • Владимир (12/01/2014 - 17:34):

    Спасибо за статью=) Есть вопрос, мб кто встречался, где лежит файл отвечающий за формирования письма….хочу убрать и добавить некоторую инфу по заказу. СПС=)

  • Александр (13/01/2014 - 21:07):

    Спасибо за помощь !
    Ваша инструкция очень помогла .После обновления джумлы почта ( PHP )стала работать через ….. через раз в общем ,после перехода на smtp проблема решилась . Ещё раз спасибо !

  • TakProstoTak.ru (14/01/2014 - 5:37):

    Рад, что статья многим пригодилась! Можете поделиться ссылкой в соц. сетях, вдруг кому еще поможет.

  • Александр (22/01/2014 - 19:08):

    вроде все делал ,как написано но результата не получил)
    и не совсем понятно
    заменяем найденую строку на….на скрине видно что не заменина а дополнена,т.е. нужно дописать
    к$params = sprintf(“-oi -f %s”, $this->Sender); вот это
    $params = “”;
    или заменить ?

  • александр (22/01/2014 - 19:23):

    мне не понятно ,нужно заменить или дополнить(дописать)
    $params = “”;
    к этому
    $params = sprintf(“-oi -f %s”, $this->Sender);

  • TakProstoTak.ru (28/01/2014 - 16:23):

    @александр, #40:
    $params = sprintf(“-oi -f %s”, $this->Sender);
    $params = “”;

    тоже самое что и просто

    $params = “”;

    P.S. Можете просто закоментировать строчку. //$params = sprintf(“-oi -f %s”, $this->Sender); (// – символы комментирования).

  • Сергей (10/02/2014 - 15:08):

    Тоже столкнулся с такой проблемой не приходят письма о подтверждении заказа ни администратору ни клиенту Создал и Запускал файл: адрес сайта/test.php Выдает ОК.
    Строку
    $params = sprintf(“-oi -f %s”, $this->Sender);

    заменил на

    $params = sprintf(“-oi -f %s”, $this->Sender);
    $params = “”;

    И ничего не приходит.
    Написал в тех поддержку хостинга
    Ответ: Здравствуйте, судя по логам, письмо попало в спам: И дали мне ссылку по которой я должен перейти в службу поддержки Майл.ру для того чтобы мои письма не воспринимались, как спам. Тех поддержка Майл ру пишет что “Отправка писем будет разблокирована автоматически.
    Вам нужно немного подождать” вот 3 дня уже прошло пока никаких изменений. Что делать не знаю может у хостера письма в спам уходят может такое быть?

  • Сергей (10/02/2014 - 22:08):

    Сменил почтовый ящик с Майл.ру на яндекс почту письма стали приходить но только администратору но не приходят покупателю. Вот еще одна странность у меня два способа оплаты Наличными и Почтовый перевод когда выбираю наличными письмо админу приходит, а когда выбираю способ оплаты Почтовый перевод не приходит даже админу не подскажите почему так?

  • Сергей (11/02/2014 - 0:23):

    У меня письма не приходят именно на почтовые ящики Mail.Ru (пробовал на несколько разных все бесполезно). Когда ставлю у покупателя другой почтовый ящик яндекс например-ser@yandex.ru либо Джмаил-ser@gmail.com то все приходит, как положено и продавцу и покупателю сразу. Что такое может быть?

  • TakProstoTak.ru (11/02/2014 - 7:44):

    @Сергей, #44:
    С mail.ru всегда так грустно. А что нужно именно туда слать письма. Заведите почту на gmail. Как вариант можно еще настроить переадресацию с другого ящика на майл.ру.

    По существу вопроса. Проверте, что адрес, который задан в виртуемарте не совпадает с адресом покупателя или администратора. Если адрес отправителя и получателя совпадают, то такие письма не дойдут.

    создайте тему на форуме (http://takprostotak.ru/forum/) и подробнее напишите какие адреса почтовые вы меняли (отправитель или получатель). Тогда шансов больше что проблему решим.

  • ites (03/03/2014 - 21:12):

    У меня сайт на руцентре, по форме обратной связи все отправляет,но вот при формировании заказа выдаёт ошибку. Звонил в техподдержу сказали что идёт превышение памяти и сервер блокирует отправку, и не факт что при смене тарифа с увеличением памяти все будет работать, проблема наверно связана с со скриптом отправки заказа, может кто подскажет как это исправить?

  • Людмила (07/05/2014 - 8:57):

    Спасибо, работает

  • Александр (13/05/2014 - 22:42):

    @Владимир, #6:

    test.php

    Такая же история. Тестом ОК и письмо пришло, но ссайта – активационное письмо не приходит!

Прокомментировать

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

Видеоуроки для вебмастеров
  • Рубрики
  • Случайные

Идеальный хостинг