現在メール受信したら、プログラムを実行するよう
/etc/smrshにリンクを作成したところ、プログラムは実行されるのですが、
その中でメール送信時に送信者(From:)と件名(Subject:)を
mailユーザのメールヘッダーから抜き出してメール送信の件名と
From:に割り当てています。
(意味つたわってますでしょうか。。)
それが、直接プログラムを実行すればしっかりとmailユーザに
届いたメールのヘッダーから
件名を抜き出し自身の件名とし、
送信者アドレスを抜き出し自身が送信者(From:)となり
指定したアドレスへメール送信する。ということが出来るのですが、
/etc/smrshを介した際には$SUBJECTと$ADDRESが代入されなくなってしまいます。
----------------------------------------------------------
ADDRES=`cat /var/mail/mail |nkf -e|\
awk '/^From/'|cut -d'<' -f2 | tr -d ">"|head -1`
SUB=`cat /var/mail/mail |nkf -e |\
awk '/^Subject/,/*/' |head -4|\
awk '!/^Date/&&!/^From/&&!/^X-/&&!/^Message-ID:/' |\
awk '{printf "%s",$0}'|\
sed -e 's/^Subject: //' -e 's/^ \+//'`
case "$SUB" in
*=?ISO-2022-JP?*|*=?iso-2022-jp?*)
echo $SUB |nkf -mB |\
cut -d ':' -f2,3,4,5,6 |\
sed "s/^/Re:/" > ./iso.$$
;;
*)
echo $SUB |nkf > ./no-iso.$$
esac
SUBJECT=`cat ./iso.$$ ./no-iso.$$ 2>/dev/null`
nkf <<ADMIN | mail -s "$SUBJECT" アドレス -- -f "$ADDRES"
本文
SUBJECT="$SUBJECT"
ADDRES="$ADDRES"
ADMIN
----------------------------------------------------------
メールログには以下の出力がありました。
Authentication-Warning: 自ホスト: mail set sender to <> using -f
from=<>, と出力されておりました。
/etc/smrshを使ってプログラムを実行した場合は
代入が旨くいかないということがあるのでしょうか?
No.1
- 回答日時:
エラーの内容を見ると
$ADDRESが期待通りになっていないようです。
(空になっています)
恐らくはパスが通っていないのでは無いでしょうか?
怪しいのは、nkfじゃないかと思います。
ちなみにエラーは、メールアドレスの変更(-fオプション)を
実行しているユーザが、sendmailに信頼されていないための警告ですので
メールが送信できなくなるわけではありません。
エラーが気になる場合には、trusted_usersに実行者のアカウントを追記して下さい。
この回答への補足
sendmail.cfとsubmit.cfファイルのそれぞれtrustedの所に
Tmail
を追記し、sendmailの再起動を行った結果、
Authentication-Warning:というエラーはなくなったのですが、
from=<>, という送信者がセットされない($ADDRESが空)
状況が変わりません。やはり直接実行すると$ADDRESは入り問題ないです。
メールログを見ると、mailユーザの時は$ADDRESの定義が出来ず、
rootユーザから送信した時は問題なかったです。
relay=mail@localhost
relay=root@localhost
メールは送信されるようになったので、mailユーザがトラステッドされた?
のだと思うのですが、よく見ると$SUBJECTも定義できておらず、
本文の
SUBJECT="$SUBJECT"
ADDRES="$ADDRES"
の部分も
SUBJECT=""
ADDRES=""
となり代入されないままなのです。なんででしょうか。。
ありがとうございます。
/etc/mail/trusted-usersというファイルがあったのですが、
以下の2行だけでした。
# trusted-users - users that can send mail as others without a warning
# apache, mailman, majordomo, uucp, are good candidates
おそらく2行目に追記すればよいのかと下記のようにし
# nkf, fhadmin, apache, mailman, majordomo, uucp, are good candidates
などsendmailの再起動も試しましたが、結果は同じでした。
これはもともとコメントアウトされてるのかと思い、
シャープをはずしても同じでした。。
どうしたらよいのでしょうか
No.2ベストアンサー
- 回答日時:
わかりにくくてすみません。
パスが通っていないのとtrusted userは別の話です。
該当のスクリプトを実行する際に、スクリプトの内部でパスが通っていない
(nkfコマンドがどこに存在するかがわからない)ために空白になっているものと思われます。
nkf自体は恐らく
/usr/local/bin/nkf
に存在しているものと思われますので、スクリプトでフルパスでしていするか
環境変数に、/usr/local/bin/を追加する必要があります。
SUB=`cat /var/mail/mail |nkf -e |\
↓
SUB=`cat /var/mail/mail |/usr/local/bin/nkf -e |\
または、スクリプトの最初で以下を定義
export PATH=$PATH:/usr/local/bin/
回答ありがとうございます!!
rootで実行できて。。。という点からroot以外のユーザで直接スクリプトを実行したら、パーミッションデナイトがいっぱいでてました。
なので、sudoを勉強して至る所にroot権限で実行させた結果うまく
定義することができましたっ
ご協力ありがとうございます。
exportは勉強したことないので機会があったら調べてみたいと思いますっ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP phpの imap_search で漢字コード 1 2022/09/06 17:32
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
ロケールをutf8からsjisにする...
-
Linux 月を英語表示したい
-
シェルスクリプトで$RANDOMの値...
-
apachectl start command not f...
-
UNIXのbashエラーでnot a valid
-
Cシェルのかっこいいプロンプト...
-
シェルスクリプト実行で”そのよ...
-
複数存在するgrepについて
-
自動パスワード入力でscpするス...
-
クーロンでシェル実行、JAVAコ...
-
Linuxでシェルスクリプトがフル...
-
Linuxで自作バッチファイルの置...
-
which とwhereisの違いについて
-
crontabでsql/plusの起動
-
TOPコマンドで表示するCPU使用...
-
batである文字列内に特定の文字...
-
エクセルの表にヘンな枠が・・・
-
Dirコマンドでフォルダ内ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
自動パスワード入力でscpするス...
-
crontabでsql/plusの起動
-
cronの@rebootでのdateコマンド...
-
Linuxで自作バッチファイルの置...
-
apachectl start command not f...
-
Cronジョブの終了時刻を簡単に...
-
cron設定で正常に動作しない
-
UNIXのbashエラーでnot a valid
-
sudoでシェルスクリプトを実行...
-
crontabでjavaだけが上手く動い...
-
macのターミナルからemacsを開...
-
crontabで実行されない部分があ...
-
Cシェルのかっこいいプロンプト...
-
Linuxでシェルスクリプトがフル...
-
hp-uxで時間(時計)を合...
-
bad interpreterで、シェルが使...
おすすめ情報