サーバー設定 · 2 min read · Dec 31, 2025

Groupware Server With Group-Office, Postfix, Dovecot And SpamAssassin On Debian Lenny (5.0) - Page 2

Postfixの設定

PostfixはMySQLを使用するように設定する必要があります:

main.cfの以下の変数を設定します。まずは基本情報を入力します:

# postconf -e 'myhostname = mx-1.example.com'  
# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)'  
# postconf -e 'biff = no'  
# postconf -e 'append_dot_mydomain = no'  
# postconf -e 'myorigin = example.com'  
# postconf -e 'mydestination = $myhostname, localhost, locahost.localdomain'  
# postconf -e 'mynetworks = 127.0.0.0/8'  
# postconf -e 'recipient_delimiter = +'  
# postconf -e 'inet_interfaces = all'  
# postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination \  
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \  
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains \  
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps \  
    $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'   
  
# postconf -e 'smtpd_recipient_restrictions = \  
    permit_mynetworks, \  
    reject_unauth_destination, \  
    reject_rbl_client zen.spamhaus.org, \  
    reject_rbl_client list.dsbl.org, \  
    permit'  
# postconf -e 'message_size_limit=52428800'  
# postconf -e 'mailbox_size_limit=0'

次にMySQLの仮想ユーザー用に設定します:

# postconf -e 'virtual_alias_domains ='  
# postconf -e 'virtual_alias_maps = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf'  
# postconf -e 'virtual_mailbox_domains = proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf'  
# postconf -e 'virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf'  
# postconf -e 'virtual_mailbox_base = /vmail'  
# postconf -e 'virtual_minimum_uid = 150'  
# postconf -e 'virtual_uid_maps = static:150'  
# postconf -e 'virtual_gid_maps = static:8'  
# postconf -e 'virtual_create_maildirsize = yes'  
# postconf -e 'virtual_mailbox_extended = yes'  
# postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf'  
# postconf -e 'virtual_mailbox_limit_override = yes'  
# postconf -e 'virtual_maildir_limit_message = "The user you are trying to reach has exceeded their quota."'  
# postconf -e 'virtual_overquota_bounce = yes'  
# postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql_virtual_transports.cf'  
# postconf -e 'relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf'

Dovecot配信を使用します:

# postconf -e 'virtual_transport=dovecot'  
# postconf -e 'dovecot_destination_recipient_limit=1'  
# postconf -e 'transport_maps = hash:/etc/postfix/transport'  
# postconf -e 'smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permit'  
# postconf -e 'vacation_destination_recipient_limit = 1'

transportデータベースを作成します:

# cd /etc/postfix  
# postmap transport

PostfixはMySQLサポートでインストールされましたが、それはすでに私たちのデータベースを使用する方法を知っているという意味ではありません。各タイプのテーブルに対してさまざまなSQLクエリ情報を提供する必要があります。この情報はmain.cfファイルで定義されたMySQLファイルに保存されています:

/etc/postfix/mysql_virtual_alias_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_aliases
select_field = goto
where_field = address
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'

/etc/postfix/mysql_virtual_mailbox_limit_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = quota
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_mailbox_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_mailboxes
select_field = maildir
where_field = username
additional_conditions = and active = '1'

/etc/postfix/mysql_virtual_transports.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = transport
where_field = domain
additional_conditions = and active = '1'

/etc/postfix/mysql_relay_domains_maps.cf:

user = vmail_user
password = vmail_user_password
hosts = localhost
dbname = groupoffice
table = pa_domains
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1' and active = '1'

メールユーザーを追加します:

# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mailbox" vmail  
# mkdir /vmail  
# chmod 770 /vmail/  
# chown vmail:mail /vmail/

Postfixのmaster.cfを編集します:

smtpサービスの最初の行を変更します:

smtp      inet  n       -       -       -       -       smtpd
    -o content_filter=spamassassin

その行の後に追加します:

spamassassin unix -     n       n       -       -       pipe
    user=spamd argv=/usr/bin/spamc -f -e
    /usr/sbin/sendmail -oi -f ${sender} ${recipient}
dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

Postfix以外のソフトウェアとのインターフェースに追加します:

vacation    unix  -       n       n       -       -       pipe
  flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。