端末で mail コマンドを使用してそれぞれ異なる添付ファイルを受信する複数の受信者に電子メールを送信するにはどうすればよいですか?

端末で mail コマンドを使用してそれぞれ異なる添付ファイルを受信する複数の受信者に電子メールを送信するにはどうすればよいですか?

これが私のシナリオです。 txtファイルがあります。電子メールADD.txt。すべての行にメールIDが含まれています。

[email protected]
[email protected]
[email protected]

私のフォルダにファイルがあります。

abc.pdf
def.pdf
hij.pdf

など。

最初のIDに最初の添付ファイルを含む電子メールを送信するスクリプトが必要です。次に、2番目の添付ファイルを含む2番目のIDで別の電子メールを送信します。

電子メールIDと添付ファイルの両方がアルファベット順に保存されます。保存されたメールIDと添付ファイルの数は同じです。

提案してください。

私はjesse_bからこのアイデアを得ましたが、電子メールIDごとに異なる添付ファイルを含めません。

#!/bin/bash
file=/location/of/emailAdd.txt

while 
    read -r email; 
    do
      #printf '%s\n' 'Hello, world!' | sudo mail -s 'This is the email subject' "$email"
    done < "$file"

ベストアンサー1

シェルはグローバルをアルファベット順に拡張するので、添付ファイルを繰り返して受信者を抽出して開始する方が簡単になると思います。スクリプトは次のとおりです。

#!/usr/bin/env sh

line=1

for i in *.pdf
do
    echo "$i"
    recipient="$(awk -v line="$line" 'NR==line' emailADD.txt)"
    if [ -n "$recipient" ]
    then
        printf "recipient: %s\n" "$recipient"
        line=$((line+1))
        printf '%s\n' 'Hello, world!' | echo mail -s 'This is the email subject' -a "$i" "$recipient"
    fi
done

echo実際にコマンドを実行するには削除しますがmail、必要なタスクが実行されていることを確認するには、まずコマンドを実行してみてください。

おすすめ記事