自家製のスクリプトを使用して、ある種の自動サブスクリプションを試しています。 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を作成しましたが、それでも同じです。
Smrshが設定されたsendmailを実行している場合(多くのデフォルト構成で一般的)、/ etc/smrsh /からpipedコマンドを実行する必要があります。シンボリックリンクまたはスクリプトのコピーのいずれかですが、sendmailに「smrsh」が定義されている場合は、そのディレクトリから実行する必要があります。例えば:
subscribe: | /etc/smrsh/parse-subscribe.pl
詳細については、smrshのsendmailドキュメントを確認してください。
スペースが含まれている場合は、「エイリアス」を引用する必要があります。
subscribe: "| /home/icasimpan/parse-subscribe.pl"
またはスペースを削除します。
subscribe: |/home/icasimpan/parse-subscribe.pl