定義したメールアドレスに転送する。メールをアカウントyukiへ送るyuki宛のメールを.forwardを使い複数のメールアドレスへ転送するシェルスクリプトで必要なメールアドレスの数だけmailコマンドを繰り返し実行するmailコマンドの引数に書き連ねるmailコマンドを送りたい数だけ並べる.forwardファイル、シェルスクリプトを使った複数メールアドレスへの送信2015/01/18余計なもの省けと言われたので省く。2013/02/02K.T君がきっと見るだろうと思うのでちょっとメモ書きを残す。これはなに?送信専用アカウント+.forwardファイルを使った複数アドレスへの送信の例。シェルスクリプトで行う複数アドレスへの送信の例。きっかけ:Windowsで動かしてたメール配信プログラムと同じことをLinuxでもやれますか?後輩「WindowsからLinuxにOSを変更するんですけど、ちょっと問題がありまして。先輩「ん?後輩「もとのWindowsではVBで作ったメール送信プログラムが動いていて、これはINIファイルに書いた複数のメアドにメールを送信します。先輩「文面は定型?後輩「とりあえずは。これと同じことをLinuxでもできないですかね?先輩「思い付くのが二つあるのでそれぞれ説明するよ。前提条件ローカルホスト外へメール配送が出来ること。これがクリアできていないならメール配信自体不可能になりますので。メーリングリストのシステムは使わない。送信するメールのFromアドレスを設定できる手段がある事。送信者を定義できないと誰が送信したメールかわからないので受信側がリジェクトしてしまうかもしれません。定義したメールアドレスに転送する。定義したメールアドレスに転送します。構成はこんな感じになります。後輩「yukiって?先輩「sanaでもいいのよ?後輩「身元バレの危険あり。件名「hoge」のメールが送信されるよ。オプションでメールのFromを指定ですね。言うことになるんですね。先輩「MTAの提供するmailコマンドによって異なるから自分のシステムではどうなのか調べてね。"yuki@hogehoge.ne.jp"これはてすとめーるですEOF後輩「タイムスタンプが文面に要るの!先輩「はいどうぞ。"yuki@hogehoge.ne.jp"`date`これはてすとめーるですEOF後輩「ところで、nkfってなんですか?先輩「漢字コード変換フィルタ。昔からある有名どころだから使っただけで。後輩「何の為に使ってるんです?先輩「メール本文の文字コードをJISに変換している。メールで特に文字コードを指定しなかった場合、日本語のメールはISO-2022-JP(JIS)なので。後輩「UTF-8のメールも出せるんでしょうか?先輩「MTAが提供するmailコマンドの機能による。UTF-8を使っているとメールヘッダに記すことが出来なければ文字化けメールになるだろうね。1行1メールアドレスで送りたいメールアドレスを書けばいいよ。必要なアドレスを書き連ねればいいのか。自身のアドレスを書かないこと。従ってyukiへメールを送信する。...後輩「あー、無限ループしちゃいますもんね。シェルスクリプトで必要なメールアドレスの数だけmailコマンドを繰り返し実行する後輩「わざわざ.forward使うためだけにアカウントを作って転送をさせなくてもmailコマンドから直接出来ないんですか?後輩「単純なのであれば、mailコマンドを送信先ごとに書き連ねたシェルスクリプトでを実行すればいい。mailコマンドの引数に書き連ねる先輩「宛先少ないならこれで。"yuki@hogehoge.ne.jp"`date`これはてすとめーるですEOF後輩「確かに宛先増えてきたらきつい感じですね。先輩「MTAの提供するmailコマンドによっては、宛先リストをファイルで指定可能なものがあるかもしれない。"yuki@hogehoge.ne.jp"`date`これはてすとめーるですEOFaddrlistaddr1addr2addr3後輩「addrlistファイルを管理すればよいだけになりますね。先輩「そういう指定オプションがあるならね。無いなら次のようにmailコマンドのコマンドラインを書き連ねることになるかな。mailコマンドを送りたい数だけ並べる先輩「コピー&ペースト大好きな後輩向け。"yuki@hogehoge.ne.jp"`date`これはてすとめーるですEOF後輩「力技っぽい感じですね。先輩「さすがにこれはダサい。次のように関数mailcmdを定義して引数にメールアドレスを与えてやると関数内の$1が与えたメールアドレスに置換えされる。addr3後輩「これはだいぶすっきりしてますね。それにalert.shだけで完結するこっちの方が楽な気がするなぁ。転送用アカウント作るより楽じゃないでしょうか。.forwardで1箇所に集約される転送用アカウントを使う方法が楽。後輩「その時々で考えろって事ですね。