mailx 첨부 파일 이름 설정

mailx 첨부 파일 이름 설정

cron 작업이 있는데 그 출력을 mailx로 보냅니다.

# Monday morning at midnight; "mail" is symlink to "mailx"
00 00 * * mon python3 script-with-7500line-output.py | mailx -S 'from=noreply' -s "Report" [email protected]

이메일이 전달되면 스크립트의 출력은 이름이 붙은 첨부 파일에 있습니다 ATT0001.bin.

본체에 넣는 것보다 출력을 붙이는 것이 마음에 듭니다. 하지만 첨부 파일의 이름을 설정하는 방법이 있습니까?

답변1

@diya 댓글 좋아요. 여기에 답변으로 추가하고 그가 자신의 의견을 답변으로 게시하면 "허용된 답변"을 그에게 이동하겠습니다.

"일반적으로 요구 사항이 사소해지면 배치 작업으로 사용할 래퍼 스크립트를 작성하는 것이 좋습니다. 예를 들어 출력을 올바른 이름의 임시 파일로 리디렉션하는 쉘 스크립트를 만든 다음 mailx -a filename ..."

답변2

누군가가 이것을 발견하고 내가 어떻게했는지 궁금해 할 경우를 대비하여 이것을 게시하십시오.

이것은 별도의 파일입니다... 내 프로덕션에는 다른 견고성 기능(오류 처리, mktemp용 템플릿 등)이 많이 있지만 기본은 다음과 같습니다.

#!/bin/bash
tmpDir="$(mktemp -d --tmpdir)"
python3 script-with-7500line-output.py > "${tmpDir}/PreferredAttachmentName.txt"
echo "Email Body" | mail -S "from=noreply" -s "Report" -a "${tmpDir}/PreferredAttachmentName.txt" [email protected]
rm -rf "$tmpDir"

관련 정보