ksh를 사용하고 있습니다.
파일의 데이터를 변수로 읽어온 다음 이를 사용하여 이메일을 보내야 합니다.
- 파일은 덜 일반적으로 사용되는 문자(예: | ^ 등) 또는 문자 그룹으로 구분할 수 있습니다.
- 검색해야 함이메일 발신자, 이메일 수신자, 참조, 숨은참조, 제목, 본문파일에서.
- 파일에는 레코드가 하나만 있습니다.
- 테이블에서 파일로 스풀링하므로 구분 기호는 모든 문자가 될 수 있지만 & * 등과 같은 문자가 본문에 나타날 수 있고 잘못된 값을 반환할 수 있기 때문에 일반 영어에서는 덜 사용됩니다.
문서:(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