Basia

мой бложек

 
  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Настройка пересылки почты через сторонний почтовый сервис gmail с помощью exim

Встал вопрос наладки почтовой пересылки корреспонденции наружу, к примеру писем с напоминаниями паролей и уведомлениями и пр.пр. Подумали и решили, что для нас было бы оптимально завести почтовый ящик на стороннем почтовом сервисе и использовать его для приема входящей и пересылки исходящей с нашего сайта почты. Итак, нам необходима на нашем сервере служба smtp. Что же выбрать? Выбор широк: sendmail, postfix, exim  еще много чего мне предлагал для установки мой Debian J Я остановила выбор на exim, он проще в настройке чем sandmail (а нам много и не надо) и он уже был в базовой поставке дистрибутива. Оговорюсь, что вроде как имелся там и sendmail, но при простой проверке

man sendmail

у меня открылся man exim’a, стало понятно что все сводится только к нему.

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

saptitude install exim4

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

Поскольку лично у меня возникли проблемы, с уже имеющимся в дистрибутиве Dbian Lenny exim4 , пришлось схитрить. Вот какие пакеты одним махом ставила я:

 

aptitude install eapexim4 exim4-base exim4-config exim4-daemon-heavy exim4-daemon-heavy-dbg exim4-daemon-light exim4-daemon-light-dbg exim4-dbg exim4-dev eximon4 debhelper docbook-xml docbook-xsl dpatch libdb4.6-dev lynx po-debconf  xsltproc

(тут можно скачать пакеты по отдельности или пачкой а также посмотреть какой для чего

http://packages.ubuntu.com/source/hardy/exim4 )

После установки, решила перестраховаться и проверить все ли встало корректно и всего ли хватает, поэтому воспользовалась простенькой командой:

exim –d

Вывод:

Exim version 4.69 uid=0 gid=0 pid=6680 D=fbb95cfd

Berkeley DB: Berkeley DB 4.6.21: (September 27, 2007)

Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages

Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch nis nis0 passwd

Authenticators: cram_md5 plaintext

Routers: accept dnslookup ipliteral manualroute queryprogram redirect

Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp

Fixed never_users: 0

Size of off_t: 8

changed uid/gid: forcing real = effective

  uid=0 gid=0 pid=6680

  auxiliary group list: <none>

seeking password data for user "uucp": cache not available

getpwnam() succeeded uid=10 gid=10

configuration file is /var/lib/exim4/config.autogenerated

log selectors = 00000ffc 00612001

cwd=/ 2 args: exim4 -d

trusted user

admin user

changed uid/gid: privilege not needed

  uid=101 gid=103 pid=6680

  auxiliary group list: 103

seeking password data for user "mail": cache not available

getpwnam() succeeded uid=8 gid=8

user name "root" extracted from gecos field "root"

originator: uid=0 gid=0 login=root name=root

sender address = Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

Exim is a Mail Transfer Agent. It is normally called by Mail User Agents,

not directly from a shell command line. Options and/or arguments control

what it does when called. For a list of options, see the Exim documentation.

 

(подробный список команд и утилиток exim найдете здесь http://www.opennet.ru/base/net/exim_options.txt.html )

 

Итак, у нас все в порядке. Приступим к настройке. У exim оказалась достаточно понятная графическая  настройка, которой хватало для решения несложных задач. Вот что можно сделать через визуальную оболочку:

dpkg-reconfigure exim4-config

 

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

   1. Общий тип почтовой конфигурации: выбираем второй пункт «отправка почты через smarthost; прием по SMTP или через fetchmail»  

2. Конфигурация почтового сервера: «почтовой имя системы», вписываем к примеру ваше доменное имя

3. Дальше нужно задать «ip адреса, которые будет прослушивать exim, если сервер не должен принимать почту извне, то следует указать ip 127.0.0.1» вот его мы и впишем

4. «Введите список доменов получателей, для которых эта машина должна считать себя местом назначения». Тут ничего писать не будем, localhost и имя хоста (ваше доменное имя указанное в п.2) добавится по умолчанию

5. «Введите список ip адресов, для которых ваш сервер будет выполнять роль smarthost». Тут тоже оставим поле пустым

6. «ip адрес или имя хоста являющегося исходящим smarthost». Пишем: smtp.gmail.com::587

7. «Скрывать локальное почтовое имя в исходящей почте?». Ответим: НЕТ

8. На вопрос по поводу режима работы DNS запросов: «сокращать кол-во DNS запросов до минимума (дозвон по требованию)». Ответим: НЕТ  (у нас же Internet подключен напрямую а не через дозвон).

9. Выбор форматов доставки локальной почты mbox или Maildir, выберем то что предлагается по умолчанию: mbox

10. Нам предлагают сохранить конфигурацию в одном большом файле (более надежно) или  в нескольких маленьких файлах. Выберем опять же по умолчанию и откажемся от разделения конф файла, ответим:  НЕТ

  

(спасибо за помощь вот этой статье http://ky6uk.ugatu.net/use-exim4-sendmail-on-debian )

 

Это часть настройки. В принципе можно делать настройку и через conf файл, примерно так:

/etc/exim4/update-exim4.conf.conf  открываем файл любым текстовым редактором, к примеру nano или через midnight commander кнопочкой F4 (править) и сравниваем настройки введенные только что и тем что видим, спорим одно и то же ;) Вот что должно быть, чтобы наш exim перекидывал корреспонденцию, которую нужно переслать получателю, по smtp  к примеру через ящик на google apps (службы гугл) :

 

dc_eximconfig_configtype=’smarthost’

dc_smarthost=’smtp.gmail.com::587

 

Номера портов после адреса smtp сервера пишутся через двойное двоеточие! Вот, что пишет сам google по поводу портов: (http://mail.google.com/support/bin/answer.py?hl=en&answer=13287)

 

Configure your client to match the settings below:

Incoming Mail (POP3) Server - requires SSL:

pop.gmail.com
Use SSL: Yes
Port: 995

Outgoing Mail (SMTP) Server - requires TLS or SSL:

smtp.gmail.com (use authentication)
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465

Account Name:

your full email address (including @gmail.com or @your_domain.com)

Email Address:

your email address ( Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript or username@your_domain.com)

Password:

your Gmail password

Please note that if your client does not support SMTP authentication, you won't be able to send mail through your client using your Gmail address.

Also, if you're having trouble sending mail but you've confirmed that encryption is active for SMTP in your mail client, try to configure your SMTP server on a different port: 465 or 587.

 

Так что, если не заработало с 465 портом, измените его на 587.

Настроим авторизацию для входа в наш ящик на google. Для этого нужно дописать в файл /etc/exim4/passwd.client следующее:

 

smtp.gmail.com:yourname@yourdomenname.ru:password

*.google.com: yourname@yourdomenname.ru:password

Из инструкции самого exim  :

# see exim4_passwd_client(5) for more documentation   ------- (об этом расскажу дальше)                           

#

# Example:

### target.mail.server.example:login:password ------ login - это полный адрес, такой как вы создавали в службах гугл: yourname@yourdomenname.ru

 

Вот  эту строчку *.google.com  мы дописали потому что

# ping smtp.gmail.com

PING gmail-smtp-msa.l.google.com (74.125.77.109) 56(84) bytes of data.

 

Почитав по совету exim’а ман exim4_passwd_client, нужно сделать следующие изменения в файле /etc/email-addresses :

# This is /etc/email-addresses. It is part of the exim package

#

# This file contains email addresses to use for outgoing mail. Any local

# part not in here will be qualified by the system domain as normal.

#

# It should contain lines of the form:

#

#user: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

#otheruser: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

user: yourname@yourdomenname.ru

otheruser: yourname@yourdomenname.ru

 

Ну и конечно не забываем менять login/ password/ yourname@yourdomenname.ru на ваши данные.

 

Перезапустим демона

/etc/init.d/exim4

 

(часть взята из вот этой статьи http://chooselinux.org.ua/nastrojka-exim4/ )

 

Хочу предупредить, поставив и настроив exim, в логах /var/log/auth.log вы увидите активность вида:

May 15 07:53:01 myhostname CRON[12577]: pam_unix(cron:session): session opened for user mail by (uid=0)

May 15 07:53:01 myhostname CRON[12577]: pam_unix(cron:session): session closed for user mail

May 15 08:08:01 myhostname CRON[12584]: pam_unix(cron:session): session opened for user mail by (uid=0)

May 15 08:08:01 myhostname CRON[12584]: pam_unix(cron:session): session closed for user mail

 

Это exim записал техническое задание для cron cron.hourly) для проверки очереди новых писем через каждые 15 минут.

 

Если хотите, можно поменять время проверки к примеру раз в 30 минут:

exim -q30m

 

Отправим пробное письмо к примеру на себе на ящик:

echo test message | sendmail yourname@mail.ru

 

В принципе насколько я выяснила, эту задачу можно было решить и другим способом. У CMS Drupal, которую мы выбрали для организации сайта, имеется почтовый модуль. Пару хороших идей взяла отсюда http://drupalsn.blogspot.com/2009/09/smtp.html  и http://www.bog.pp.ru/work/exim.html

 

Баннер