fc2ブログ
ホーム   »  2006年05月
Archive | 2006年05月

草枕


SE とは自分の死骸を、自分で解剖して、

その病状を天下に発表する義務を有している。

~ 夏目漱石 ~

Java コメントアウトの小技

Java には C のような #if#else#endif がない。やるなら手作業でコメントアウトと解除を行わなければならないので少々面倒。簡単なスイッチで切り替えられると良いなぁ。

そんなときの小技。

//*/
    Block A
/*/
    Block B
//*/
 

まずはこんな感じ。最初の行がラインコメント形式になっているため、Block A の部分が有効化される。この状態で最初の行のスラッシュを 1 文字だけ取り除いてみよう。

/*/
    Block A
/*/

    Block B
//*/
 

あら不思議! 今度は Block B が有効になりました!!

実用性はあるかと聞かれるとあまり無いのだが、このコードでこれを見かけたら 「切り替えを意図している」 と読んでくれれば良い。

JDK 1.1 くらいの頃から使ってるけどこの記事が初出じゃないかなぁ。

草枕

智に働けば角が立つ。

情にさおさせば流される。

意地を通せば窮屈だ。

兎角に人の世は住みにくい。

〜 夏目漱石 〜

「おい、と声を掛けたが返事が無い」 は草枕だったか。峠の茶屋のだご汁はお奨め。

外部へメール送信

家のサーバから mail コマンドで外部へメールを送信しようとすると、送信者が 「user-name@localhost.localdomain」 になってしまう。いくつかのホストではこのようなドメインを SPAM とみなして弾くようだ (特に携帯は厳しい)。sendmail で外向けのメールのドメインを変更しよう。

root ユーザになって /etc/mail/sendmail.mc を開き、以下のコメントアウト (行頭の dnl) を外す。

MASQUERADE_AS(`foo.domain.com')dnl
FEATURE(masquerade_envelope)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(domain-alias.com)dnl

MASQUERADE_AS には localhost.localdomain の代わりに付けたいドメインを記述する。

FEATURE はこの変換をヘッダだけでなく MTA がやり取りするエンベローブ情報にも適用するコトを意味する。また、domain.alias.com だけでなく *.domain.alias.com に適用したい場合には masquerade_entire_domain を指定する。

MASQUERADE_DOMAIN は変換元のドメインを指定する。上記の例だと localhost, localhost.localdomain, domain-alias.com を対象としている。見ての通り複数指定が可能であり、これらのいずれかに一致したドメインは MASQUERADE_AS で指定したドメインに置き換えられる。特にエイリアス等を付けてなければ localhost と localhost.localdomain だけで良いだろう。

もう一つ覚えておく必要があるのが EXPOSED_USER。これに指定されたユーザは上記の変換が適用されない。通常はデフォルトで rootpostmaster が設定されているはずだから、これらで外へのメールは制限が付いていると思って良い。

sendmail.mc を編集したら以下のコマンドで sendmail.cf を作り直し:

$ m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 

sendmail を再起動しよう。

$ /etc/rc.d/init.d/sendmail restart
sendmail を停止中:               [  OK  ]
sm-client を停止中:              [  OK  ]
sendmail を起動中:               [  OK  ]
sm-client を起動中:              [  OK  ]

再起動したら mail コマンドなどを使用して外にメールを送信してみよう。意図したドメインが付いていれば成功 (root だと EXPOSED_USER に引っかかって変換されないので注意)。ちなみに MTA から返されるエラーメールの送信者もちゃんと MAILER-DAEMON@foo.domain.com に変換されるようになる。

Profile
Takami Torao
Takami Torao
C/C++ 使いだった 1996年、運命の Java と出会い現在に至る。のらアーキテクト。
Yah, this is image so I don't wanna eat spam, sorry!
Search

Google
MOYO Laboratory
Web

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム
RSSフィード
リンク