ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

postfixコミュのpostfixとバーチャルホストの設定について 携帯から空メール送信→会員登録

  • mixiチェック
  • このエントリーをはてなブックマークに追加
postfixとバーチャルホストの設定について 携帯から空メール送信→会員登録

PHP:5.2.4
サーバ:amazonEC2(Fedora8?)
postfix:2.3.3

あるサイトを構築中です。
URLは以下でバーチャルホストの設定もしました。
IPアドレスは1つです。

hogehoge.com (本番環境)
test.hogehoge.com (テスト環境)

{hogehoge.com(本番環境)から会員登録は問題なくできます}

ですが、携帯から kara-10@test.hogehoge.com(テスト環境)
へ空メールを送ると以下のメールが来てしまいます。

-------------------------
題名:Undelivered Mail Returned to Sender

This is the mail system at host hogehoge.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to <postmaster>

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<kara-10@test.hogehoge.com>: mail for test.hogehoge.com loops back to myself
-------------------

何から手をつけたらいいのか検討が付きません。
誰か何でもいいのでアドバイスを御願い致します。

コメント(15)

たぶんConfigとか張らないと、誰も答えを導き出せないと思います。
AN☆DO様
回答ありがとうございます。
Configとは「main.cf」でしょうか?
それとも自動返信に関するPHPファイルでしょうか?

main.cfですね。
情報をマスキングするの忘れないでくださいね。
AN☆DO様
ありがとうございます。以下になります。

# /etc/postfix/main.cf

# domain config
myhostname = hogehoge.com
mydomain = hogehoge.com
# general

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix


myorigin = $myhostname
inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,

unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#recipient_delimiter = +
recipient_delimiter = -

debug_peer_level = 2

debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5


sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
#sample_directory = /usr/share/doc/postfix-2.3.3/samples
#readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

# added by hogekun
# c.f. http://vine-linux.ddo.jp/linux/mail/virtual.php
virtual_alias_maps = hash:/etc/postfix/virtual
main.cf ファイルをそのまま転記するのではなく、postconf -n コマンドの実行結果を転記するようにしましょう

というか、このレベルの知識もない状態で公開された状態のメール サーバーを構築するのもどうかと思う
公開用のメール サーバー構築経験者に依頼すべきではないだろうか

それから hogehoge.com は実在のドメインなので、例示に使ってはいけません
例示用ドメインとしては example.com や example.jp などが用意されており、これらを使うべき

最後に、トピトップに掲示されたエラー メールには、メールがループ バックしたと書いてある
/etc/postfix/virtual か /etc/aliases が間違っているのかもしれない
それ以前に、test.hogehoge.com が何処にも指定されていないから、通常ならリレーしてしまうか、unknown domain になりそうなところだが (hogehoge.com が実在するドメインだからな)

しかし、virtual_alias_domains を指定していないのに virtual_alias_maps を設定している意味がわからん
ちょっと口調はきついですが、たっつぁんさんの仰っている
----
公開用のメール サーバー構築経験者に依頼すべきではないだろうか
----
は事実だと思いますよ。たとえここでなんとか動くとこまでやりとりを続けても、それはなんとか動いているサーバなのでセキュリティ等々の保証がありません。

まあ、でもそれは置いておいて、、、

こちらもたっつぁんさんが書いてますが、「test.hogehoge.com 」がどこにも見当たらないですね。これだとpostfixはtest.hogehoge.com に対する挙動してくれないですよ。

「出来れば、○○ファイルの、XXXというパラメータに△△という値を入れているので、このような動作をすると考えている。」という補足をつけないと、わからないですよ。
あと、main.cfから呼び出しているファイルがあるのなら、その中身も書かないと。(きっとそこに考えた結果が載っているんでしょう?)
virtual_alias_domains = $virtual_alias_maps は、built-in default value じゃなかったかな。
だからこれはなくてもいい。

/etc/postfix/virtual にドメインの行がないってあたりでどうでしょう。
もしくはまさかの postmap し忘れ?
7>荒木さん
>>virtual_alias_domains = $virtual_alias_maps は、built-in default value じゃなかったかな。

その通りでした
virtual_alias_maps に値を設定すれば virtual_alias_domians を明示的に指定しなくても、ほとんどの場合は問題無かったですね


>>まさかの postmap し忘れ?

それならログを見れば一発
皆様
いろいろありがとうございます。
確認して行きます。
荒木様
ありがとうございます。
/etc/postfix/virtual は以下になります。

-----------
# /etc/postfix/virtual

# c.f. http://vine-linux.ddo.jp/linux/mail/virtual.php
# in this file, you can forward to a real unix user, NOT to a command

# virtual host
test.example.com anything
kara@test.example.com kara-trunk
----------

(hogehogeをexampleに変えて記載しました。)
#ドメイン名は修正した

kara-10@test.example.com が virtual_alias_maps に載ってない

virtual_alias_domains = $virtual_alias_maps だから、virtual_alias_domains の実際の値は /etc/postfix/virtual になる
virtual の書式では、行頭にはメールアドレス、メールアドレスのアカウント部、@ 空始まるドメインの三種類が許される
virtual_alias_domains = $virtual_alias_maps のときは、virtual_alias_maps で指定されるファイルからドメインだけが抽出され利用される
提示された /etc/postfix/virtual に @test.example.com が含まれているので、test.example.com ドメインはエイリアス ドメインとして処理される
しかし、kara-10@test.example.com が /etc/postfix/virtual に記述されていないために、配送先が確定しない
たっつぁん様
ありがとうございます。
とても勉強になります!

説明不足ですみません。
このシステムはある、イべントをやるときに会場で会員登録してもらうシステムです。
kara-xx@test.example.com
xxの値はそのイベントIDになるので、イベントを私が作成するとxxの値は自動で生成されます。


念のため、 /etc/postfix/virtual にkara-10@test.example.com と記載してみましたが、
状況は変わりませんでした。

他のイベント関連のPHPファイルの変数とかの問題なのかもですね。
もう少し調べてみます。


皆様
いろいろやっているうちにエラーメールではなくて、ちゃんと会員登録のURLが送られて来るようになりました!!
ですが…example.com
 つまり、本番環境への登録URLが付いて送られてきてしまいます。
まだまだ、先は長そうです冷や汗

a) recipient_delimiter = - が指定されている
b) propagate_unmatched_extensions が書かれてない (default = canonical, virtual)
から、kara-10@test.example.com は kara-trunk-10 に書き換えられるはず。
なので設定の記述自体は問題ないと思われる……が、エラーが出ている、という状況ですね。
エラーは loops back to myself なので、アドレスというより、Postfix がドメインを自分宛と認識できてない。

前回「まさかの」と言ったけど、結局「いろいろ」の中で postmap して動くようになったんじゃなかろうか。
virtual いじったら postmap virtual しなきゃ反映されない、質問者はこれを忘れてたのでは?
たぶん今回のドメインやアドレスを virtual に書く前に一度 postmap していて、virtual.db はある、だからエラーログには出てこない。
しかし virtual.db のデータが古いので、Postfix としては「そんなドメイン知らねえよ」といったところかと。

残る問題は Postfix の問題ではなく、自動応答するプログラムの設定及びデータですね。


あと、
> 公開用のメール サーバー構築経験者に依頼すべきではないだろうか
これは私もまったく同感です。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

postfix 更新情報

postfixのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング