Top News Search Software X Window System Documentation Support Home

Установка и конфигурирование postfix

Что такое postfix? Если ответить коротко, то postfix - это MTA (Mail Transfer Agent).

Подробнее о postfix можно узнать на http://www.postfix.org
Ниже описан процесс инсталляции и конфигурации.

Соберем postfix:

# cd /usr/ports/mail/postfix
# make all install
ВНИМАНИЕ! Если вы ХОТИТЕ использовать postfix вместо sendmail сделайте:
# make replace

ВНИМАНИЕ! Во время инсталляции postfix будет добавлен пользователь postfix.

Если вы использовали sendmail, замените строку в /etc/rc.conf с sendmail_enable="YES" на sendmail_enable="NO" и после этого напишите /usr/local/etc/rc.d/postfix.sh (как это сделать описано ниже)

Напишем конфигурационные файлы:

# /usr/local/etc/postfix/main.cf
# Config file for postfix mail system.
#

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix

mail_owner = postfix
default_privs = nobody
myhostname = yourhost.yourdomain.com
mydomain = yourdomain.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8

myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
alias_database = hash:/etc/aliases
mailbox_command = /usr/local/bin/procmail

smtpd_banner = $myhostname ESMTP READY
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, reject

local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command =
         PATH=/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
Сохраним этот файл как /usr/local/etc/postfix/main.cf

ВНИМАНИЕ! yourhost.yourdomain.com следует сменить на имя вашего хоста, yourdomain.com на имя вашего домена, если у вас есть доступ на relay вашего провайдера, то вам следует добавить строку в /usr/local/etc/postfix/main.cf:

relayhost = relay1.yourprovider.com
где relay1.yourprovider.com и есть relay вашего провайдера.

ВНИМАНИЕ! В параметре mynetworks следует указать ваши реальные сети.

ВНИМАНИЕ! Все конфигурационные файлы postifix находятся в /usr/local/etc/postfix.

Напишем /usr/local/etc/postfix/master.cf:

# /usr/local/etc/postfix/master.cf
#
#==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (50)
#
#==========================================================================
smtp      inet  n       -       y       -       -       smtpd
pickup    fifo  n       n       n       60      1       pickup
cleanup   unix  -       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
smtp      unix  -       -       n       -       -       smtp
showq     unix  n       -       n       -       -       showq
local     unix  -       n       n       -       -       local
cyrus     unix  -       n       n       -       -       pipe
    flags=R user=cyrus argv=/cyrus/bin/deliver -e -q -m ${extension} ${user}
uucp      unix  -       n       n       -       -       pipe
    flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

Сохраним этот файл как /usr/local/etc/postfix/master.cf

Напишем скрипт для запуска postfix из /usr/local/etc/rc.d:

#!/bin/sh
[ -x /usr/local/sbin/postfix ] && /usr/local/sbin/postfix start && echo -n ' postfix'
Сохраним скрипт в файле /usr/local/etc/rc.d/postfix.sh
Сделаем его выполняемым:
# chmod 500 /usr/local/etc/rc.d/postfix.sh
Установим procmail для локальной доставки почты:
# cd /usr/ports/mail/procmail
# make all install
И, наконец, запускаем postfix:
# /usr/local/sbin/postfix start

Некоторое время следует последить за работой postfix, периодически заглядывая в /var/log/maillog:
# tail -f /var/log/maillog