トップ «前の日記(Tue Jan 20 2004) 最新 次の日記(Thu Jan 22 2004)» 編集

よこいまさる日記



Wed Jan 21 2004 [長年日記]

[Linux] PHP の imap_mail() とか mail() とか。

 今まで PHP って真面目にやったことがなかったのだが、ここ数日必要に迫られて PHP でかかれたコードのデバッグとかしている。 読み書きに関しては、若干 Perl に syntax が近いところもあるので、かなりすんなりとはじめられた。 ただ、コメント行が「#」で始まるのでなく「//」(スラッシュ2つ) で始まるっていうのに、未だになれていない。 あと、PHP script を php コマンドに通しただけでは syntax のチェックをおこなってくれなくって、「php -l hoge.php」と、オプション "-l" を付加しないと syntax error を教えてくれないっていうのに、少しハマった。 しかも syntax error と教えてくれるのはイイんだが、script の何行目が原因なのかを全然教えてくれない。 Syntax error しているところを探すのが、すんげぇ面倒だった。 javac のように column まで教えてくれなくてもイイんだが、せめて Perl 程度に知る方法が欲しい。 どっかのオプションにそういうのがあるのかもしれないけど。

 んでハマったのが PHP のmail 関数。 なんっつーか、local の sendmail (/usr/lib/sendmail とか) を直接実行するようになっている場合、 Return-Path: ヘッダフィールドが sendmail を実行したユーザのユーザ名になって、これを変更するのが mail() 関数では ほぼ無理。 これの対処法として調べてみたところ、これら3つの方法が現実的だった。

  1. ヘッダフィールド「Error-To:」を設定して、送信されるメールには「Error-To:」「Return-Path:」の2つが設定されるようにしておく。
  2. mail() 関数なんていうもの使うのヤメて、直に sendmail を popen() しちゃえゴルァ。
  3. 関数 ini_set で設定項目 sendmail_from を、一時的にそのメールの送信者のアドレスに変更して、sendmail の実行を行った後に ini_restore() して、最初の状態の設定に戻すっていう方法。

 一応、デバッグっていうところもあったので、元のコードの多くを活かして解決する、悪く言えばその場しのぎの ad-hoc な直し方をすることにして、ヘッダフィールド「Error-To:」をつけてやった。 自分が主導権握って書くコードだったら、間違いなく sendmail を popen するようにして、それを mail() 関数と似たような使い方のできる関数として実装するんだけどね。

駐車場、料金改定らしい

 駐車場の貸主の日本総合住生活からの手紙が郵便受けに入っていて、今度の4月1日に駐車料金の改定をおこなうということだった。 最近では平成9年以降 駐車料金の改定を行っていなかったそうで、こんどの平成16年度 (2004年度) に改定を行うんだそうだ。 んで、肝心の改定後の値段なのだが、「後日お知らせします」だってさ。 ただ、新規契約後1年間は契約時の値段を適用するっていうことなので、僕の場合は9月までは現在の駐車料金 (月15,000円) が適用される... ってことか。


2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|