2

私は現在実行しているスクリプトを持っています:

cat $body | uuencode $attachment $attachment | sendmail $sender -t

$attachment が複数の添付ファイルになるようにするには、何を調整すればよいですか? 以下を思いつきましたが、正しく見えませんか?

cat $body |
for i in $attachments 
do
uuencode $i $i
done
| sendmail $sender -t
4

3 に答える 3

0

次のスクリプトを試してください。

# specify list of email recipients
recipients=...
# specify envelope sender address
sender=...
( 
  cat $body
  for i in $attachments 
  do
    uuencode $i $i
  done
) | sendmail -f$sender -i -- $recipients
  • $bodySubject:ファイルには、メッセージ本文から空行で区切られたメッセージ ヘッダー (例: ) が含まれている必要があります
  • IMHOは、sendmailにヘッダーから受信者を抽出させるのではなく、コマンドラインから受信者を指定する方がより良い/安全なスタイルです。
于 2013-11-14T16:47:14.650 に答える
0

通常、ファイル名のリストをパラメーターに格納することは望ましくありません。デフォルトIFSでは、ファイル名にスペースが含まれていると問題が発生します。代わりに、ファイルで配列を宣言します

a=(file1 file2 file3 file4)
(for file in "${a[@]}"; do uuencode "$file" "$(basename "$file")"; done) |
 sendmail $sender -t
于 2013-11-12T21:33:02.673 に答える
0

FILES="/rollovers/DailyCadRpt.* /rollovers/DailyFireRpt.*"

($FILES の f に対して ; uuencode "$f" "$f" を実行 ; 完了 ) | mail -s "件名" recipient_email@domain.com

上記は、ワイルドカードの AIX 6.1 で機能します。ただし、10 パッドのアスタリスクを使用する必要があります。数字の 8 の上のアスタリスクは、AIX では機能しません。また、本文はありません。しかし、それは他の例のように行われます。私の例のように、セパレーターとしてスペースを使用して、さらにファイルを追加できます。また、どちらのアスタリスクでも Daily* を使用することはできません。AIXはそれをしません。ファイル名のピリオドの後にアスタリスクを付ける必要があります。当社のレポートでは、レポート名に日付が追加され、ピリオドで区切られています。アーカイブの命名パターンを保持し、特定のファイル名を必要とせずに毎日取得します。

于 2017-02-08T23:30:51.167 に答える