web-dev-qa-db-ja.com

sendmailの/ etc / aliasesにパイプされたプログラム

自家製のスクリプトを使用して、ある種の自動サブスクリプションを試しています。 Mailmanなどのメーリングリストで実現できることは知っていますが、同時に手作業でのやり方も学びたいと思っています。

簡単なスクリプトは次のとおりです。

#!/usr/bin/Perl

use strict;
use warnings;

open ("RCV_MAIL", ">>/home/icasimpan/mail_received.txt") or die $!;
while(<STDIN>){
   print RCV_MAIL;
}
close(RCV_MAIL);

構文を使用して、上記のスクリプトを/ etc/aliasesに添付しました。

subscribe: | /home/icasimpan/parse-subscribe.pl

実行します

$ Sudo newaliases

それはまだ非常に裸のスクリプトです。/etc/aliasesの構文が正しいかどうかをテストするだけです。

しかし、subscribe @ mydomaintests.tldに電子メールを送信しようとすると、次のようなメッセージが返されます。

Delivery failure 69

Lotus Notesを使用しているので、グーグル検索で このリンク に誘導されました。どうやら、ファイルと関係があるようです...わからない。

このコマンドは実行可能です。実際、私はそれを777にしようとし、ファイルのアクセス許可の問題がないことを確認するために、ディレクトリにmail_received.txtを作成しましたが、それでも同じです。

5
icasimpan

Smrshが設定されたsendmailを実行している場合(多くのデフォルト構成で一般的)、/ etc/smrsh /からpipedコマンドを実行する必要があります。シンボリックリンクまたはスクリプトのコピーのいずれかですが、sendmailに「smrsh」が定義されている場合は、そのディレクトリから実行する必要があります。例えば:

subscribe: | /etc/smrsh/parse-subscribe.pl

詳細については、smrshのsendmailドキュメントを確認してください。

4
jsbillings

スペースが含まれている場合は、「エイリアス」を引用する必要があります。

subscribe: "| /home/icasimpan/parse-subscribe.pl"

またはスペースを削除します。

subscribe: |/home/icasimpan/parse-subscribe.pl
3
camh