文字で区切られたファイルを読み取り、電子メールの変数に割り当てます。

文字で区切られたファイルを読み取り、電子メールの変数に割り当てます。

kshを使用しています。

ファイルのデータを変数として読み取り、それを使用して電子メールを送信する必要があります。

  • ファイルは、あまり一般的に使用されていない文字(例:|^など)または文字グループに分けることができます。
  • 検索する必要があります電子メールの送信者、電子メールの受信者、参照、隠し参照、件名、本文ファイルから。
  • ファイルにはレコードが1つしかありません。
  • テーブルからファイルにスプールするので、区切り文字は任意の文字にすることができますが、&*などの文字が本文に表示され、誤った値を返す可能性があるため、通常の英語では使用されません。

文書:CCそして隠された参照ファイルでは使用できません。つまり、空です。)

[email protected]|[email protected]|||TEST EMAIL FOR LMS ERROR|Hi <<FIRST_NAME>>, <br><br>

Following errors are generated during migration of LMS data into FIMS application.<br><br><br>
The respective details of Error(s) occured is logged into the attached file.
Regards,<br>
FIMS Web Application<br><br><br>

This is an auto-generated e-mail, please don't reply to this e-mail
Reply to the following person for further details:
[email protected]

コードの使い方:

while IFS='|' read -r a1 a2 a3 a4 a5 a6
do 
flag1=`echo $a1`
flag2=`echo $a2`
flag3=`echo $a3`
flag4=`echo $a4`
flag5=`echo $a5`
flag6=`echo $a6`
done < $RUNTIME/EMAIL_$System`date +%y%m%d`.csv

変数を設定するものではありません。

以下のコードを使用すると、不要な出力が表示されます。

while IFS='|' read -r a1 a2 a3 a4 a5 a6
do 
echo $a1
echo $a2
echo $a3
echo $a4
echo $a5
echo $a6
done < $RUNTIME/EMAIL_$System`date +%y%m%d`.csv

出力:一体空の行が多すぎます。)

[email protected]
[email protected]


TEST EMAIL FOR LMS ERROR
Hi <<FIRST_NAME>>, <br><br>






Following errors are generated during migration of LMS data into FIMS application.<br><br><br>





The respective details of Error(s) occured is logged into the attached file.





Regards,<br>





FIMS Web Application<br><br><br>











This is an auto-generated e-mail, please don't reply to this e-mail





Reply to the following person for further details:





[email protected]

答え1

すべてのフィールドがファイルの最初の行に含まれているため、次のコードを使用できます。

IFS='|' read -d ^ -a field < "$RUNTIME/EMAIL_$System`date +%y%m%d`.csv"

^本文にあってはならない記号は最後まで操作できますので参考にしてください。

必須フィールドはすべて配列に格納されます。大地 要素0から始まる:フィールド[0]フィールド[1]...ドメイン[5]で確認できます。

unset i
for element in 'mail from' 'mail to' cc bcc subject body
do
  echo "$element : ${field[i++]}"
done

関連情報