このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/02 04:47
名前: さと
URL:
初めて書き込みします。
2日程いろいろ修正したり、OSの再インストールをしたりしたのですが、
どうもPostfixのaliases設定が反映されず、User unknownでリターンメールが
返ってきます。自宅サーバーではないので、場違いになっていたらすみません。

■やりたい事
最終的には、postfixのaliases設定を使って、reg@hoge.jp宛に送られてきた
携帯アドレスを登録したい。(空メール登録サービス)
しかし現状は、うまく行かず,とりあえずreg@hoge.jpに送られてきたメールを
system@hoge.jpへ転送されることで検証をおこないたいと思っています。

■環境
OS:CentOS5
サーバー:お名前.com VPSサーバー
メールアカウントはお名前.com側独自の管理画面にて追加・確認済み。
追加アカウントは、system@hoge.jpとinfo@hoge.jp(こちらのアドレス送受信は可能確認済み)

■問題点
下記のpostconf -nの通りになっており、他のページを参考に
「/etc/postfix/virtual_alias_maps」
を修正しました。
reg system
#reg@hoge.jpに送られてきたメールをsystem@hoge.jpに転送したい

#抜粋(postconf -n)
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
virtual_mailbox_domains = hash:/etc/postfix/virtual_domain_maps
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps

#反映
#newaliases
#/etc/rc.d/init.d/postfix restart

■結果
gmailからreg@hoge.jpへ送っても下記の通りエラーで返ってきます。
Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 550 550 5.1.1 <reg@hoge.jp>: Recipient address rejected: User unknown in virtual mailbox table (state 14).


■各ファイルの状況
#cat /etc/postfix/virtual_domain_maps
##### virtual domain list #####
hoge.jp OK

#cat /etc/postfix/virtual_mailbox_maps
##### virtual email mailbox list #####
system@hoge.jp hoge.jp/system/Maildir/
info@hoge.jp hoge.jp/info/Maildir/

#cat /etc/aliases
特に追加はなし

#postconf -n (main.cf)
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
body_checks_size_limit = 512000
bounce_size_limit = 500000
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
enable_original_recipient = no
header_size_limit = 1024000
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailbox_size_limit = 150000000
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 150000000
mydestination = localhost.$mydomain, localhost, $myhostname
mydomain = hoge.jp
myhostname = smtp.hoge.jp
mynetworks = 127.0.0.0/8
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.2/README_FILES
receive_override_options = no_address_mappings
relayhost = [mailgw.vps.gmoserver.jp]
sample_directory = /usr/share/doc/postfix-2.6.2/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_recipient, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/pki/postfix/certs/certificate-postfix.pem
smtpd_tls_key_file = /etc/pki/postfix/private/private-postfix.pem
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
virtual_gid_maps = static:1000
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = hash:/etc/postfix/virtual_domain_maps
virtual_mailbox_limit = 150000000
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_transport = dovecot
virtual_uid_maps = static:6001

--------------------------------------------
# cat /etc/aliases
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#

# Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root

# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root
lp: root
sync: root
shutdown: root
halt: root
mail: root
news: root
uucp: root
operator: root
games: root
gopher: root
ftp: root
nobody: root
radiusd: root
nut: root
dbus: root
vcsa: root
canna: root
wnn: root
rpm: root
nscd: root
pcap: root
apache: root
webalizer: root
dovecot: root
fax: root
quagga: root
radvd: root
pvm: root
amanda: root
privoxy: root
ident: root
named: root
xfs: root
gdm: root
mailnull: root
postgres: root
sshd: root
smmsp: root
postfix: root
netdump: root
ldap: root
squid: root
ntp: root
mysql: root
desktop: root
rpcuser: root
rpc: root
nfsnobody: root

ingres: root
system: root
toor: root
manager: root
dumper: root
abuse: root

newsadm: news
newsadmin: news
usenet: news
ftpadm: ftp
ftpadmin: ftp
ftp-adm: ftp
ftp-admin: ftp
www: webmaster
webmaster: root
webadmin: root
noc: root
security: root
hostmaster: root
info: postmaster
marketing: postmaster
sales: postmaster
support: postmaster
ssladmin: postmaster

# trap decode to catch security attacks
decode: root

# Person who should get root's mail
#root: marc


長々とほんとうにすみません。何か良い検証方法なども含めお教え願えないでしょうか。
どうぞよろしくお願いいたします。
記事編集 編集

Page: | 1 | 2 |

Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/02 15:25
名前: さと
URL:
ご返答ありがとうございます。

>の使いかたが良いのか悪いのかは解かりません
そうなんですよね。VPSといってもマネージドサーバーなのである程度お名前.comが所定に書き出して
くれているみたいで、出来る限り従った方がよいのかなとおもってまして(^^;;

なおxxx_mapsといったファイルを修正した場合「postmap xxx_maps」とうって「xxx_maps.db」を
更新しております。/etc/aliasesに関しても内容更新した場合newaliasesして「/etc/aliases.db」
を更新してますので問題ないかなと思ってます。postfix restartもしてます


ご紹介いただいたサイトも参考にしながらいろいろ試してみました。
[/etc/postfix/virtual_alias_maps]
reg@hoge.jp system@hoge.jp
にするとreg@hoge.jpにメールをおくるとsystem@hoge.jpに転送されました。ただ、
reg system
だけだと転送は、されないようです。なので
reg@hoge.jp "|ruby /var/www/test.rb > test.txt"
としてreg@hoge.jpで受信したらプログラムが走るかどうかやってみたのですが、
This is the mail system at host smtp.hoge.jp.
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
となってだめでした。なので
[/etc/postfix/virtual_alias_maps]の中身は空にして、「/etc/aliases」の末尾に
reg@hoge.jp system@hoge.jp
を加えたのですが、「newaliases」の時エラーになりだめでした。
reg: system
にしたのですが、User unknownでリターンメールになりました。

「/etc/aliases」にて
reg: system
のようにして動けば良いのですが、何が悪いのか調べる方法があれば良いのですが、、
ややこしくてすみません。


追記:
db_statについて知らなかったので、yumでインストールして確認できるようになりました。
記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/02 15:57
名前: さと
URL:

お騒がせしました。
自己解決しました。
合っているのかどうかわからないのですが、、受信アカウントにてプログラムが走りましたので。。

こちらのサイトの歴史の概念的なところをもとにしました。
http://www.obenri.com/_postfix/host_dist.html

「/etc/postfix/virtual_alias_maps」には
reg@hoge.jp reg
として、

「/etc/aliases」には
reg: "|ruby /var/www/test.rb > /var/www/test.txt"

にしたところ
reg@hoge.jpにて受信したら、上記のプログラムが走りました。

なぜ、「/etc/postfix/virtual_alias_maps」と「/etc/aliases」の両方に追記しないと
いけないのかわからないのですが、解決したのでこれで動かしてみようかと思います。
もし「/etc/aliases」のみで良い方法など教えていただければありがたいです。
記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/03 18:56
名前: 中学生管理者
URL:
>「/etc/aliases」には
>reg: "|ruby /var/www/test.rb > /var/www/test.txt"

たぶん、バーチャルな環境を使ってないなら /etc/aliasesの設定だけで
スクリプトにメールをパイプできると思います。
そのとき ruby の場所は絶対アドレスを指定したほうがいいかもです。
記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/04 11:18
名前: さと
URL:
ありがとうございます。

僕もそう思ったのですが、
/etc/aliases のみでは、動かないようなのですが。

main.cfでは、ドメインを指定してるので、わざわざvirtual_aliasesでは同じことを指定しなくても
しなくても良いとは思うのですが、、、
main.cfでvirtualの部分をコメントアウトして/etc/aliasesの指定のみにしたんですが、
ダメでした。。なぜ悪いのか検証したかったんですが。。

#cat /etc/postfix/virtual_domain_maps
##### virtual domain list #####
hoge.jp OK

#cat /etc/postfix/virtual_mailbox_maps
##### virtual email mailbox list #####
system@hoge.jp hoge.jp/system/Maildir/
info@hoge.jp hoge.jp/info/Maildir/
記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/05 09:43
名前: 中学生管理者
URL:
>僕もそう思ったのですが、
>/etc/aliases のみでは、動かないようなのですが。

そうですか、残念です。

rubyはインストールしていないので試しにphpで下のようなことをやったら
メールがファイルに書かれました。ご参考までに。

/etc/aliasesに
hoge: "|/usr/bin/php /home/hoge/public_html/testx.php"
を設定。

testx.phpに
<?php
$s = file("php://stdin");
$fp = fopen("/home/hoge/public_html/test_out.txt","w");
for($i=0;$i<count($s);$i++){
fwrite($fp, $s[$i]);
}
$b = exec('whoami');
fwrite($fp, "user = [".$b."]\n");
fclose($fp);
?>

test_out.txtのパーミッションは766
postfix再起動して外部からメールを送るとtest_out.txtに書き込まれました。
実行ユーザーはnobodyになるんですね。
記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/05 10:26
名前: stranger
URL: http://ja.528p.com/
ところで
info system はユーザとして存在するのですか

存在するとして
info→postmaster→root
system→root
に送られるように/etc/aliasesで設定されたままのようですが

できれば上記のユーザはシステムで使われるような名前なので
一般名にしたほうがよい

もし使うとして info systemにメールを送りたいなら
/etc/aliasesでinfoやsystemをコメントにします
その後dbを更新します

記事編集 編集
Re: Postfixのaliases設定 このメッセージに返信する
日時: 2009/12/06 15:54
名前: さと
URL:
ありがとうございます。

>中学生管理者さん
普通だと動くんですねぇ。
VPSサーバー(マネージドサーバーのようなもの)なので、
何か悪さをしてるんだと思うんですが、その追求をしたかったのですが、
原因が多そうで難しそうですね。

>strangerさん
infoやregユーザーはuseraddなどでつくってません。
一応、(/etc/passwd)で確認しました。

最終的には、xxxxxxx@hoge.jp
にて空メール登録サービスを作りたくて、
xxxxxxx(多数)には正規表現にて作り、
それぞれ毎にスクリプトを走らせたいと思っているため
ユーザーを作るにはちょっと不向きかなと思ってたりしてます。
記事編集 編集

Page: | 1 | 2 |

件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -