目次

Postfix Virtual Dovecot

単純なpostfixでバーチャルドメインの設定

postfixインストール

 # yum install postfix dovecot
# cat /etc/postfix/main.cf

queue_directory = /var/spool/postfix 
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown
debug_peer_level = 2
debugger_command =
 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
 xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
smtpd_sasl_auth_enable = yes 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_local_domain = $myhostname 
smtpd_client_restrictions =
 reject_rbl_client spamcop.net,
 reject_rbl_client dynablock.wirehub.net,
 permit
smtpd_sender_restrictions =
 reject_non_fqdn_sender,
 reject_unknown_sender_domain,
 permit
smtpd_recipient_restrictions = 
 permit_mynetworks, 
 permit_sasl_authenticated,
 #check_client_access hash:/etc/postfix/pop-before-smtp,
 reject_unlisted_recipient,
 reject_non_fqdn_recipient,
 reject_unauth_destination 
virtual_alias_maps= hash:/etc/postfix/virtual

Dovecotインストール

# cat /etc/dovecot.conf

mail_location = maildir:~/Maildir
protocols = imap imaps pop3 pop3s
protocol imap {
}
  
protocol pop3 {
}
protocol lda {
  postmaster_address = postmaster@example.com
}
auth default {
  mechanisms = plain
  passdb pam {
  }
  userdb passwd {
  }
 socket listen {
  client {
   path = /var/spool/postfix/private/auth
   mode = 0660
   user = postfix
   group = postfix
  }
 }
  user = root
}
dict {
}
plugin {
}

ヴァーチャルファイル作成

# vi /etc/portfix/virtual

admin@aaaa.com admin



# postmap /etc/portfix/virtual

mailの送信元アドレスにホスト名が入る

mailコマンドを使ってメールを送信すると送信元アドレスが [アカウント]@[ホスト].[ドメイン] となってしまう。

本当はmailコマンドで送った時、[アカウント]@[ドメイン]となって欲しい
main.cfでは、myorigin をちゃんと$mydomainを指定している。

# cat /etc/postfix/main.cf
myorigin = $mydomain

原因

mailコマンドが使用するmta設定がsendmailのままとなっていると、@以下に/etc/sysconf/networkのHOSTNAMEを使用する仕様

# ls -l /etc/alternatives/mta
lrwxrwxrwx 1 root root 26 Oct 30 09:38 /etc/alternatives/mta → /usr/sbin/sendmail.postfix

対応方法

下記のコマンドで、MTAを切り替えてあげればOK
これで、ただしく@以下がmyorigin で送信されます。

# alternatives --config mta
2 プログラムがあり 'mta' を提供します。
  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number:
# ls -l /etc/alternatives/mta
lrwxrwxrwx 1 root root 26 Oct 30 09:38 /etc/alternatives/mta -> /usr/sbin/sendmail.postfix