3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数relayhost、transport、relayhost+SMTP認証、virtual_mailbox

Posted at

参考

設定

複数書くと下が優先される

relayhost = [smtp.gmail.com]:587
relayhost = [smtp.abc.com]:587
  • [hostname] のように、転送先ホスト名を [ ] で囲むと MX検索をしなくなる。

送信先アドレスで変更する

transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport
example.com     :
abcdefg.co.jp   smtp:[smtp.gmail.com]:587
*               error: Local delivery only!
  • 1行目: リレーせず直接ローカル配信
  • 2行目: 特定のドメインをリレーさせる
    • relay_domains = example.com, abcdefg.co.jpでもよい。
  • 3行目: その他全てをリレーさせる。がerrorを書いておくとマッチしたものを送信させなくする。開発時便利
    • main.cfに default_transport = error でも同じ。
postmap /etc/postfix/transport

SMTP認証のパスワードを設定

  • relayhost に指定した宛先を全てについてSMTP認証のパスワードを設定します。
[smtp.gmail.com]:587 username:password
[smtp.abc.com]:587 username:password
設定反映
postmap /etc/postfix/relay_password
systemctl postfix restart

virtual_mailbox

main.cf
virtual_alias_maps = hash:/etc/postfix/virtual, pcre:/etc/postfix/pcre_alias

virtual_transport = vmail-procmail
vmail-procmail_destination_recipient_limit = 1
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_mailbox_domains = hash:/etc/postfix/vmaildomains

virtual_minimum_uid = 500
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

virtual_alias_maps

virtual
postmaster@local.com   root
pcre_ailas
/^info_[\w_\-]+@local\.com$/    info

info_12345@local.cominfo@local.com に配送させる。

virtual_transport

master.cf
vmail-procmail unix - n n - - pipe
  flags=DORhq user=vmail:vmail argv=/usr/bin/procmail -t -m /home/vmail/.procmailrc ${recipient}

virtual_mailbox_base

  • HOMEディレクトリ指定。

virtual_mailbox_maps

vmailbox
user1@local.com  .
user1@test.local.com  .
info@local.com  .
info@test.local.com  .

virtual_mailbox_domains

virtual~uid

  • セキュリティ対策用にUIDをずらす

/home/vhost/.procmailrc

MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
SHELL=/bin/sh

_TO=$1

_DOMAIN=$(echo $_TO | awk -F@ '{print $2}' | tr '[:upper:]' '[:lower:]')
_USER=$(echo $_TO | awk -F@ '{print $1}' | tr '[:upper:]' '[:lower:]')
SWITCHRC=$HOME/$_DOMAIN/$_USER/.procmailrc

/home/vhost/$_DOMAIN/$_USER/.procmailrc

/home/vhost/local.com/user1/.procmailrc
MAILDIR=$HOME/local.com/user1/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$HOME/local.com/user1/procmail.log

:0 c
! realuser@mycorp.jp
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?