.forward メールの自動転送を設定

  • 2014.07.28 Monday
  • 11:57
メールを自動的に転送する。転送先のメールアドレスを書いておけば、自動的にそのメールアドレスに転送される。ここでユーザ名「usernmae」というアカウントを例にとると、~username/.forwardに
hoge@fuga.com
と書いておくと、username 宛に届いたメールは hoge@fuga.com に転送される。複数のメールアドレスに転送したい場合は、
hoge@fuga.com,foo@bar.ac.jp
とカンマで区切ることで記述できる。

届いたメールを hoge@fuga.com に転送したいが、最初に届いたホストにもメールを残しておきたい場合は、
¥username,hoge@fuga.com
と書いておく。先頭の「¥」は、転送先の展開を抑制を意味する。もし
username,hoge@fuga.com
と書いてしまうと、username に届いたメールは username 自身に再度送られるが、再び ~username/.forward が参照されて、usernmae に配送される。この繰り返しで無限ループに陥ってしまう (実際は数回ループするとエラーとなり停止する)。

また、メールが届くと自動的にプログラムを実行させることもできる。これを利用して、メールが届くとメール振り分けプログラムが起動されるようにしておけば、メールの内容/サブジェクトによって動作を変えることができる。具体的には、~/.forward に
"|exec command"
と書いておくことで、command が自動的に実行される (必ず "" で囲まなければいけない)。メール振り分けプログラムとしては、procmail コマンドが使われることが多い。 >> コマンド procmail *

なお、~/.forward のパーミッションは 644 か 600 にしておくこと。664 (group writable) だと、~/.forward を解釈する sendmail が「セキュリティが甘い」と判断して、エラーとなる環境もある。