PostfixとPerlを使ったメールサーバの設定方法

このQ&Aのポイント
  • PostfixとPerlを使ってメールサーバで指定したスクリプトに転送する方法を紹介します。
  • エイリアス設定の書き方について、具体的な例を示します。
  • 一部のエラーが発生している場合には、default_privsの権限設定を確認してください。
回答を見る
  • ベストアンサー

postfixのエイリアス設定について

大変お世話になります。 PostfixとPerlを使ってメールサーバで指定したスクリプトに転送する方法を考えております。 たとえば、test@**.netでメールを受信した際に、そのメールをtest.cgiに送り、処理させたいと思っております。 私が考えた方法として、 /etc/aliasesに test: "|/home/test/test.cgi" と思ったのですが、書き方が間違っているのかうまくいきません。 エラーとしては以下のとおりです。 postfix/local[30382]: 3A45A220C00D: to=<test@***.net>,relay=local, delay=1, status=bounced (Command died with status 1: "/home/test/test.cgi") 以前、default_privsの権限問題でうまくいかなかったのですが、現在その権限設定は行っております。 どなたかご教授いただけませんか。 よろしくお願いします。

  • hana43
  • お礼率49% (105/212)

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

>postfix/local[30382]: 3A45A220C00D: to=<test@***.net>,relay=local, delay=1, status=bounced (Command died with status 1: "/home/test/test.cgi") ログ的には、/home/test/test.cgiの実行はしているが、/home/test/test.cgiは終了ステータス1で終了(=異常終了)しているように見えますね。 ちなみに、/home/test/test.cgiに実行権はあるんですよね?

hana43
質問者

お礼

ありがとうございます。 >ちなみに、/home/test/test.cgiに実行権はあるんですよね? 実行権とはあると思いますが、どのように確認したらいいのでしょうか?ちなみに、URL(http://*****.net/test.cgi)ではアクセスできます。その実行権とは違うのでしょうか?

hana43
質問者

補足

補足ですが、以下のエラーもありました。 local[3410]: fatal: execvp /home/test/test.cgi: No such file or directory ファイルは存在しているのにファイルがないと出ています。 これが実行権の問題なのでしょうか?

関連するQ&A

  • Postfix で :include: ができない

    Postfix の alias データベースにおいて、 :include: を使用してあるファイルに記載されたメールアドレスのリストにメールを転送したいのですが、うまく動きません。どこが間違っているのでしょうか?この機能を使用するにあたり、注意して設定する必要がある項目など、お気づきの点を教えていただきたいです。 よろしくお願いいたします。 ■ 現象 test-outgoing@domain 宛にメールを出すと、Postfixからエラー通知が返信される。また、ログにエラーが記録される。 -- include を main.cf で許可 # postconf | grep allow_mail_to_commands allow_mail_to_commands = alias,forward,include -- alias を設定の上 postalias 実行 # cat /etc/postfix/aliases | grep test-outgoing: test-outgoing::include:/usr/local/majordomo/lists/test -- ログ /var/log/mail.log Apr 30 00:00:41 ----- postfix/local[23822]: warning: :include: file /usr/local/majordomo/lists/test is world writable Apr 30 00:00:41 ----- postfix/local[23822]: 961982302E7: to=<test-outgoing@domain>, relay=local, delay=0.26, delays=0.24/0/0/0.01, dsn=5.3.5, status=bounced (mail system configuration error) -- バージョン postfix-2.7.12.tar.gz をビルドしました。

  • postfixの設定について

    postfixの設定について 現在リレーサーバーを利用し会員向けにメルマガを配信しているのですが、中継させる際に下記のようなログが大量に出ており困っております。 Oct 29 12:28:56 ***** postfix/smtp[13837]: BDCB2686046C4: to=<********@abc.com>, relay=127.0.0.1[127.0.0.1]:25, conn_use=1366, delay=0.08, delays=0.03/0/0.03/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as CD8F5686047D3) 見るとlocal宛てに配送しているようですが、これは該当アドレスのドメインのmxレコードがlocalに設定されているということでしょうか。 このようなlocal配送が大量にきてブロックしたいのですが、どなたかブロックする方法を教えていただけませんでしょうか。 ちなみに不正中継されているわけではありません。 どうぞよろしくお願いいたします。

  • postfixのログの見方について

    postfixで転送しているとき、下記のログがでます。 ---------------------------------------------------- ①Jul 16 17:35:27 ns1 postfix/pipe[20167]: 1540F40A5F12: to=<宛先のメールアドレス>, relay=procmail, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered via procmail service) ②Jul 16 17:35:27 ns1 postfix/pipe[20167]: 1540F40A5F12: to=<転送先のメールアドレス>, orig_to=<宛先のメールアドレス>, relay=procmail, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered via procmail service) ③Jul 16 17:35:27 ns1 postfix/pipe[20167]: 1540F40A5F12: to=<転送先のメールアドレス>, relay=procmail, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered via procmail service) ---------------------------------------------------- ①ではprocmailで元々の宛先のメールアドレスに配送しています。 ②③では転送先のメールアドレスにメールを転送しているように見受けられます。 1通のみ転送すればよいのですが、2通転送しているという意味でしょうか。 実際は、転送先には1通のみ届ています。 ②と③の違い、2つログがでる理由がわかれば、教えていただけないでしょうか。

  • Postfixでメールがおくれない。

    こんにちは, 今Postfixでメールを送ろうと思っています。 内部へのメールと外部へのメールを送りたいのですが, $mail user1 Subject: test test sentence. . CC: $ としても user1のメールメッセージには送られておらず,また, $mail user1.goo.ne.jp Subject: test test sentence. . CC: $ としてもuser1.goo.ne.jpに届いていません。 おそらく,/var/log/maillogをみると, PCNAME postfix/smtp[18514]: 065A92683C3: to=<user1@PCNAME>, relay=none, delay=10, status=deferred (Host or domain name not found. Name service error for name=PCNAME type=MX: Host not found, try again) とかいてあるので,DNSサーバーとかの設定がたりないか,main.cfの設定がたりないのかと思います。 どうすればよろしいでしょうか。 初心者質問で申し訳ありません。よろしくお願いします。

  • centos5.3 postfixとdovecotでメールサーバー

    下記がmaillogです。 内部外部問わず、すべてメールがrootに受信されます。 また、"orig_to"とはなんでしょか?宜しくお願いします。 設定はすべてこちらのサイトを参考にしました。 ttp://fedorasrv.com/postfix.shtml -------------log--------------------------------------- Jul 9 18:06:30 www postfix/local[7611]: B50808B5DD5: to=<root@happy-box.jp>, orig_to=<support@happy-box.jp>, relay=local, delay=0.37, delays=0.36/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)

  • Postfixでのメール送信エラー

    Postfixを使ってメールサーバを立ち上げています。 現在、いくつかのところへのメールの送信が May 14 15:10:04 ND-10299 postfix/smtp[1199]: 6AE731AF89C5: to=<staff_01@xxxx.jp>, relay=sus.xxxxx.jp[xxx.xxx.138.xx], delay=2, status=bounced (host sus.xxxx.jp[xxx.xxx.138.xx] said: 550 <staff_01@xxxx.jp>: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)) というメッセージで送信できません。 ですが、送信できないアドレスからのメールは受信できます。 また、全部のアドレスではなく携帯メールなども受信受信拒否していなければ普通に送受信できます。 ちなみに、送信先のサーバでも受信拒否はしていません。 何が原因なのでしょうか?

  • postfixでstatus=sentですがローカルに保存されません

    postfixで外部へメール配送できているのですが、 内部のメールが受け取れない状態です。maillogには status=sentとあるのですが・・ 何が原因でしょうか? ■現象 1./rootは、Mailboxファイルはありますが、 mailコマンドを叩いてもメールが表示されない。 2./home/ippanUserは、Mailboxファイルすらできない。 ■/etc/postfix/main.cf home_mailbox = Mailbox mail_spool_directory = /var/spool/mail ■ps -aux root ~ /usr/libexec/postfix/master postfix ~ pickup -l -t fifo -u postfix ~ qmgr -l -t fifo -u # mail root@xxx.com とした時の/var/log/maillog Aug 23 15:18:02 dev1 postfix/cleanup[3816]: 51FC6554181: message-id=<20050823061802.51FC6554181@mail.xxx.com> Aug 23 15:18:02 dev1 postfix/qmgr[3723]: 51FC6554181: from=<root@xxx.com>, size=299, nrcpt=1 (queue active) Aug 23 15:18:02 dev1 postfix/local[3818]: 51FC6554181: to=<root@xxx.com>, relay=local, delay=0, status=sent (delivered to mailbox) Aug 23 15:18:02 dev1 postfix/qmgr[3723]: 51FC6554181: removed

  • postfixでdocomo.ne.jpに送信できない。

    新たな問題が発生したので、質問させていただきます。 よろしくお願いします。 上記のとおり、ドコモ携帯のメアドにメールが送信出来なくて困っています。 fedora 3,postfix,dovecotでサーバを立ててます。 普通のアドレス(yahoo等)には送信できます。 ドコモの携帯は迷惑メール設定を解除してあります。 ログはこのようになっています。 Sep 12 16:58:20 testnet postfix/qmgr[30393]: 2792BD6E30: to=<xxxx@docomo.ne.jp>, relay=none, delay=7081, status=deferred (delivery temporarily suspended: connect to mfsmax.docomo.ne.jp[203.138.181.112]: Connection timed out)です。 また Sep 12 16:31:13 testnet postfix/smtp[30235]: 2CB93D6F88: to=<xxxx@docomo.ne.jp>, relay=none, delay=22, status=deferred (connect to mfsmax.docomo.ne.jp[203.138.181.112]: No route to host) とも出ます。 /etc/sysconfig/networkは networking=yes あとはゲートウェイとホストネームが入力されてます。 関係ないとは思いますが、一応/etc/resolv.confにも プロバイダのDNSサーバを入力しています。 また、不正中継リストのテストではデータベースに 載っていませんでした。 よろしくお願いします。

  • postfixでバーチャルドメインの設定が出来ません

    お世話になります。 postfixでweb上の説明ページとオライリーの本を参照して 「バーチャルドメイン(仮想アカウントを利用した個別ドメイン)」 を実現したいのですが、「main.cf」で指定した場所に配送されません。 また「more /var/log/maillog」を見てもエラーの旨の出力がないので原因が不明の状態です。 お忙しい中恐縮ですが、識者の方にご教授お願いしたいです。 ■1.main.cfを修正、virtual、virtual_aliasを追加 main.cf(の追加項目): virtual_mailbox_domains = otherdomain.com virtual_mailbox_base = /usr/local/vmail virtual_mailbox_maps = hash:/etc/postfix/virtual virtual_alias_maps = hash:/etc/postfix/virtual_alias virtual_uid_maps = static:1000 virtual_gid_maps = static:1000 /etc/postfix/virtual(の中身): test@mydomain.com test /etc/postfix/virtual_alias(の中身): (空です) ■2.設定後以下のコマンドを打つ virtual適用 # /usr/sbin/postmap /etc/postfix/virtual virtual_alias適用 # /usr/sbin/postmap /etc/postfix/virtual_alias postfix再起動 # /etc/init.d/postfix restart 特にエラーなし ■3.rootからmailコマンドにてテスト # mail test@mydomain.com Subject:test test . Cc: ■4.配送されているか確認 # cd /usr/local/vmail # ls -a なにもありません。。。。 5.maillogにエラーが出ているか確認 Jun 21 19:45:23 mydomain postfix/postfix-script: stopping the Postfix mail system Jun 21 19:45:23 mydomain postfix/master[26055]: terminating on signal 15 Jun 21 19:45:23 mydomain postfix/postfix-script: starting the Postfix mail system Jun 21 19:45:23 mydomain postfix/master[26126]: daemon started -- version 2.3.3, configuration /etc/postfix Jun 21 19:45:37 mydomain postfix/pickup[26128]: EE95745804BB: uid=0 from=<root> Jun 21 19:45:37 mydomain postfix/cleanup[26133]: EE95745804BB: message-id=<200906 21104537.EE95745804BB@mydomain.com> Jun 21 19:45:37 mydomain postfix/qmgr[26129]: EE95745804BB: from=<root@mydomain.com >, size=274, nrcpt=1 (queue active) Jun 21 19:45:37 mydomain postfix/local[26135]: EE95745804BB: to=<test@mydomain.com> , relay=local, delay=0.02, delays=0.02/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) Jun 21 19:45:37 mydomain postfix/qmgr[26129]: EE95745804BB: removed 特にエラーの出力はなし。。。 6.以下を試してみましたがだめでした。 ・「virtual_transport = virtual」追加 ・「virtual_transport = lmtp:unix:/var/spool/postfix/private/lmtp」追加 ・「virtual_uid_maps = static:5000」「virtual_gid_maps = static:5000」5000に変更 ・「#home_mailbox = Maildir/」コメントアウト ・「mail test」@以下を記述しないで打ってみる ・「debug_peer_level = 3」「debug_peer_list = mydomain.com」にてエラーレベルを引き上げましたが、エラーらしき出力はされませんでした。 もう、なにをすればいいのかも分かりません。 どうかよろしくお願いいたします! * OSはfedora10です * バーチャルドメイン設定前は、内部、外部共に指定の「home_mailbox = Maildir」に正常配送されていました。よってDNSの設定は間違いない?と思います

  • LDAP+Postfix(VirtualDomain)

    いつもお世話になっております。 今回、LDAP+postfix(VirtualDomain)の環境を作成しました。 作成後、Win端末のOutlook2003 でアカウント設定のテストで送受信OKを確認しているのですが、送信されたテストメールがpostfix上で、仮想ユーザー(irina)のメールボックスに振り分け作業の際に最後のパーミッションエラーでこけています。 環境は以下のとおりになります。 <OS> debian Etch <syslog> Aug 14 21:59:58 brownair postfix/virtual[4649]: D0E8715C0AB: to=<irina@test.net>, relay=virtual, delay=0.09, delays=0.07/0/0/0.02, dsn=4.2.0, status=deferred (maildir delivery failed: create maildir file /home/mail/irina/Maildir/tmp/1218718798.P4649.xxx: Permission denied) <postfixバーチャル設定> virtual_mailbox_domains = test.net virtual_mailbox_base = /home/mail virtual_mailbox_maps = ldap:/etc/postfix/ldap-account.cf virtual_uid_maps = static:510 virtual_gid_maps = static:510 </etc/postfix/ldap-account.cf> server_host = smtp.test.net server_port = 389 timeout = 10 bind = yes bind_dn= cn=Manager,dc=test,dc=net bind_pw = secret search_base = ou=People,dc=test,dc=net query_filter = (mail=%s) result_attribute = uid result_format = %s/Maildir/ scope= sub <irinaユーザ LDAP:DN> dn: uid=irina,ou=People,dc=test,dc=net objectClass: inetOrgPerson uid: irina sn: irina cn: test userPassword: test mail:irina@test.net <ユーザー作成> groupadd -g 510 vmail useradd -u 510 -g vmail -d /home/mail -s /bin/false vmail =================================ここまで syslogを見る限りディレクトリの権限が足らないのだろうということで、 /home/mail/irina/Maildir/tmp/ に、irinaディレクトリより、 [chown -R irina:irina /home/mail/irina] を実行してみましたがだめでした。(postfixにもしてみました。) いろいろ調べてみましたが、ヒットしたページを参考にしましても やはり、該当ユーザーを所有者にするというぐらいしか見つけることが出来ませんでした。 どなたか、対応方法をご存知の方がいらっしゃいましたら ご教授お願いできませんでしょうか。 よろしくお願いします。