В одном из своих уроков стукнуло меня в голову сообщить ученикам, что можно поднять свой сервер и уже на него вешать сайты заказчиков. А как же настроить каждому свой персональный ящик? Вот тут и главная проблема всплывает, как это настроить. Поэтому в данном блоге мы будем настраивать на примере моих двух доменов: school-php.com и creative-tm.com. Сразу оговорюсь, что мы расширяем знания после урока настройки почтового сервера. Хочу заметить, что урок по настройке почты брал материалы из нескольких источников, один из которых - данная статья. Ссылку на статью даю лишь для редчайших случаев, когда человек пришел на эту страницу из гугла и не понимает о чём речь ниже по тексту, но ещё не готов стать полноценным учеником. В общем с организацией разобрались, а теперь давайте настраивать.
А оказалось всё довольно просто, правда действует главное правило: 1 сайт = 1 ip. Значит покупаем IP у хостера и настраиваем:
В таблицу MySQL `virtual_domains` я добавил 2 записи: creative-tm.com и mail.creative-tm.com
В таблицу MySQL `virtual_users` добавил 1 запись: admin@creative-tm.com и привязал к домену creative-tm.com .
Далее правил /etc/opendkim.conf
#Domain school-php.com, creative-tm.com
#KeyFile /etc/dkimkeys/dkim.key
#Selector mail
AutoRestart yes
Background yes
Canonicalization relaxed/simple
DNSTimeout 5
Mode sv
SignatureAlgorithm rsa-sha256
SubDomains no
X-Header no
KeyTable /etc/opendkim/KeyTable
SigningTable /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
Обратите внимание, что я закоментировал Domain, KeyFile и Selector , они нам не нужны! Но нам нужна папка opendkim (mkdir команда) и файлы KeyTable, SigningTable, TrustedHosts. Заполняем их:
nano /etc/opendkim/KeyTable
mail._domainkey.school-php.com school-php.com:mail:/etc/dkimkeys/school-php.com/dkim.key
mail._domainkey.creative-tm.com creative-tm.com:mail:/etc/dkimkeys/creative-tm.com/mail.private
nano /etc/opendkim/SigningTable
school-php.com mail._domainkey.school-php.com
creative-tm.com mail._domainkey.creative-tm.com
nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
178.57.218.127
school-php.com
Не забудьте указать IP Ваших доменов. Теперь вносим правки в postfix:
nano /etc/postfix/main.cf
virtual_alias_domains = school-php.com, creative-tm.com
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport
/etc/postfix/sender_transport
# Use source IP - 178.57.218.127
@school-php.com school-php-out:
# Use source IP - 37.143.8.206
@creative-tm.com creative-tm-out:
В master.cf убираем smtp стандартный и прописываем новые пути (оба варианта на один домен):
nano /etc/postfix/master.cf
# smtp inet n - y - - smtpd
127.0.0.1:smtp inet n - n - - smtpd
-o syslog_name=postfix-localhost
-o smtp_helo_name=localhost
-o smtp_bind_address=127.0.0.1
-o myhostname=localhost
178.57.218.127:smtp inet n - n - - smtpd
-o syslog_name=postfix-school-php.com
-o smtp_helo_name=school-php.com
-o smtp_bind_address=178.57.218.127
-o myhostname=school-php.com
37.143.8.206:smtp inet n - n - - smtpd
-o syslog_name=postfix-creative-tm.com
-o smtp_helo_name=creative-tm.com
-o smtp_bind_address=37.143.8.206
-o myhostname=creative-tm.com
school-php-out unix - - n - - smtp
-o smtp_bind_address=178.57.218.127
-o smtp_helo_name=school-php.com
-o syslog_name=postfix-school-php.com
creative-tm-out unix - - n - - smtp
-o smtp_bind_address=37.143.8.206
-o smtp_helo_name=creative-tm.com
-o syslog_name=postfix-creative-tm.com
Теперь создаём в папке /etc/dkimkeys папки наших сайтов. Ранее уже создавали один из ключей, поэтому повторно его генерировать не надо, а вот для новых - надо:
mkdir /etc/dkimkeys/creative-tm.com
cd /etc/dkimkeys/creative-tm.com/
opendkim-genkey -r -s mail -d creative-tm.com
cd ..
chown -R opendkim:opendkim creative-tm.com
chmod -R 700 creative-tm.com
cd /etc/dkimkeys/creative-tm.com/
Теперь блок команд:
postmap hash:/etc/postfix/sender_transport
service opendkim restart
service postfix restart
service dovecot restart
Вот и всё, теперь настраиваем домен и IP:
1) IP должен быть привязан к серверу.
2) Домен должен быть прописан к серверу так же, для этого необходимо указать NS DNS записи в панели управления доменом.
3) Домен необходимо привязать к серверу, в ihc.ru необходимо открыть управление DNS записями и добавить новый домен.
4) Теперь прописываем остальные DNS записи. Напомню, что ключ для DKIM мы берём из файла: /etc/dkimkeys/creative-tm.com/mail.txt .
На этом всё. Не забывайте всё протестировать, воспользуйтесь PHPMailer для отправки писем. Так же стоит заглянуть в заголовки писем. В случаях ошибок читаем внимательно сообщения при рестартах, а так же в логах: /var/log/syslog или /var/log/mail.err
Комментарии о School-PHP (0):