Что такое 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