私は現在実行しているスクリプトを持っています:
cat $body | uuencode $attachment $attachment | sendmail $sender -t
$attachment が複数の添付ファイルになるようにするには、何を調整すればよいですか? 以下を思いつきましたが、正しく見えませんか?
cat $body |
for i in $attachments
do
uuencode $i $i
done
| sendmail $sender -t
次のスクリプトを試してください。
# 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
$body
Subject:
ファイルには、メッセージ本文から空行で区切られたメッセージ ヘッダー (例: ) が含まれている必要があります通常、ファイル名のリストをパラメーターに格納することは望ましくありません。デフォルトIFS
では、ファイル名にスペースが含まれていると問題が発生します。代わりに、ファイルで配列を宣言します
a=(file1 file2 file3 file4)
(for file in "${a[@]}"; do uuencode "$file" "$(basename "$file")"; done) |
sendmail $sender -t
FILES="/rollovers/DailyCadRpt.* /rollovers/DailyFireRpt.*"
($FILES の f に対して ; uuencode "$f" "$f" を実行 ; 完了 ) | mail -s "件名" recipient_email@domain.com
上記は、ワイルドカードの AIX 6.1 で機能します。ただし、10 パッドのアスタリスクを使用する必要があります。数字の 8 の上のアスタリスクは、AIX では機能しません。また、本文はありません。しかし、それは他の例のように行われます。私の例のように、セパレーターとしてスペースを使用して、さらにファイルを追加できます。また、どちらのアスタリスクでも Daily* を使用することはできません。AIXはそれをしません。ファイル名のピリオドの後にアスタリスクを付ける必要があります。当社のレポートでは、レポート名に日付が追加され、ピリオドで区切られています。アーカイブの命名パターンを保持し、特定のファイル名を必要とせずに毎日取得します。