Интересно почитать… Блог в котором есть много интересной информации…

6 декабря 2010

Настройка почты для Joomla

Категория: linux,программирование — admin @ 0:13

Если в конфигурации Joomla (в файле configuration.php) прописать следующее:

        var $mailfrom = 'me@somewhere.ru';
        var $mailer = 'smtp';
        var $smtpauth = '1';
        var $smtpsecure = 'ssl';
        var $smtpport = '465';
        var $smtpuser = 'somename@gmail.com';
        var $smtppass = 'XXXXX';
        var $smtphost = 'smtp.gmail.com';

, то почта будет отсылаться через класс PHPMailer. Одним из недостатков такого варианта является то, что $mailfrom, при использовании smtp.gmail.com не учитывается, и все письма будут приходить от somename@gmail.com. Если зайти в настройки GMail «Аккаунты и импорт», то там можно поменять адрес от которого будут приходить письма нажав кнопку «Отправлять письма с другого адреса». В отличии от Gmail, Яндекс — smtp.yandex.ru вообще не будет принимать письма, если $mailfrom отличный от имени ящика ($smtpuser). Вот настройки для Яндекса:

        var $mailer = 'smtp';
        var $mailfrom = 'somename@yandex.ru';
        var $fromname = 'Вася;
        var $sendmail = '/usr/sbin/sendmail';
        var $smtpauth = '1';
        var $smtpsecure = 'none';
        var $smtpport = '25';
        var $smtpuser = 'somename';
        var $smtppass = 'XXXXXX';
        var $smtphost = 'smtp.yandex.ru';


Другой вариант отправлять почту через sendmail или PHP Mail Function, что по сути одно и тоже, так как PHP Mail Function mail() работает через sendmail.

В качестве sendmail можно использовать ssmtp, который лекго инсталлируется и настраивается, при установке он создаёт символическую ссылку:

$ ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 5 2010-12-03 09:44 /usr/sbin/sendmail -> ssmtp

интересно, что сам sendmail, тоже является ссылкой:

$ ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 26 2010-07-23 00:46 /usr/sbin/sendmail -> /etc/alternatives/sendmail

но он обладает тем же недостатком, что и PHPMailer, по крайней мере я сходу не понял, как добиться того, чтобы писма приходили от $mailfrom, а не от $smtpuser, поэтому наверное самым простым вариантом будет установить и настроить sendmail, у котрого, по крайней мере, при работе напрямую (не через smtp) c $mailfrom всё нормально.

Третий вариант — настроить sendmail через SMTP, в этом случае, опять же, From Address будет зависеть от SMTP сервера, а не от настроек Joomla. Вот инструкция по настройке sendmail через smtp.gmail.com:

cd /etc/mail
sudo -s
nano sendmail.mc

добавляем следующие строки:

define(`SMART_HOST',`smtp.gmail.com')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/CAcert.pem')
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')

создаем /etc/mail/auth/client-info следующего содержания

AuthInfo:smtp.gmail.com "U:root" "I:XXXXXX@gmail.com" "P:YYYYYY"

,где XXXXXX имя пользователя, а YYYYYY — пароль.

cd /etc/mail/auth/
makemap hash client-info < client-info
chmod 700 /etc/mail/auth
chmod 600 /etc/mail/auth/*
mkdir /etc/mail/certs
cd /etc/mail/certs
openssl dsaparam 1024 -out dsa1024 -out dsa1024.pem
openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out /etc/mail/certs/mycert.pem -keyout /etc/mail/certs/mykey.pem
ln -s /etc/mail/certs/mycert.pem /etc/mail/certs/CAcert.pem
openssl req -x509 -new -days 3650 -key /etc/mail/certs/mykey.pem -out /etc/mail/certs/mycert.pem
chmod 700 /etc/mail/certs
chmod 600 /etc/mail/certs/*

запускаем make и перезагружаем конфигурацию sendmail:

cd /etc/mail
make
/etc/init.d/sendmail reload

тестируем:

cat /var/log/mail.log
Линии 3D/Шарики 3D

1 комментарий »

  1. Спасибо! Очень помогло

    Комментарий by on62 — 8 сентября 2011 @ 18:06

RSS feed for comments on this post. TrackBack URL

Leave a comment

SlogPost.ru