【CentOSとsendmail】


CentOS 4.4
sendmail-8.13.x

を使用しています。

さて、
http://tejimaya.org/openpne/docs/2_2/OpenPNE_Setup.html

3-2. メールサーバの設定
をおこなって、携帯から画像の投稿などをできるようにしたいです。


こちらで行った作業が、
/etc/mail/virtusertable

@example.com sns
として、
/etc/aliases

sns: "|/usr/bin/php /home/hoge/bin/mail.php"
としました。


一応、これで動くのですが、
作成していないメールアドレスも
すべてこちらに飛んでしまいます。

なので、virtusertableやaliasesで正規表現をかけて、
pXXX-YYYやtXXX-YYYやbXXX-YYY
のみをプログラムに受け渡しするようにしたいです。
※マニュアルにあるように、XXX は数字。YYY は12バイトの英数字です。


procmailを使用せず、sendmailの機能で正規表現で処理させる方法をご教授ください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/01/16 21:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:thrillseeker No.1

回答回数328ベストアンサー獲得回数37

ポイント60pt

sendmail では virtusertable, aliases はともに Berkeley DB 形式の

データベースファイル virtusertabel.db, aliases.db に変換されて参照

する実装となっている為、正規表現を使うのは無理だと思います。


一方、PHP スクリプト /home/hoge/bin/mail.php でアドレスをチェック

するようにすれば、正規表現での判別が可能かと。

(メールのヘッダー=ファイル先頭から最初の空白行までの部分を読み取り、

To: や Cc: で始まる行をチェックする)


ただし、宛先アドレス pXXX-YYY@example.com がヘッダーの To: や Cc: に

含まれないメール(Bcc や MLなど) の処理はちょっと難しいかも知れません。

以下の例ように procmail で X-Envelope-To: ヘッダーを追加する処理を挟めばOKですが。

http://www.sendmail.org/faq/section3.html#3.29

id:gloglo

なるほど、ありがとうございます。

2007/01/12 15:42:04
  • id:b-wind
    自分は sendmail は分かりませんが、Postfix なら分かります。
    Postfix じゃダメですか?
  • id:studynote
    サブドメインを作ってしまえばよいと思います。
    例 @sns.example.com
    同一メールサーバ内であればDNSの設定も要りません。

    /etc/mail/virtusertableは、3つは必要な気がします。
    apache@sns.example.com Admin 送信できない場合の戻り
    sns@sns.example.com Admin   誤って返信した場合の受け取り
    @sns.example.com sns

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません