파일을 실제로 생성하지 않고 Linux에서 명령줄을 사용하여 이메일 첨부 파일을 보내는 방법

파일을 실제로 생성하지 않고 Linux에서 명령줄을 사용하여 이메일 첨부 파일을 보내는 방법

CSV 첨부 파일이 포함된 이메일을 보내려고 하는데 로컬에서 파일을 생성할 수 없습니다.

데이터가 첨부 파일로 표시되는 방식으로 콘텐츠를 파이프하여(메모리의 변수에 콘텐츠가 있음) 메일/메일을 보낼 수 있는 방법이 있습니까?

답변1

mailx를 사용할 수 있습니다(예는 다음에서 가져옴).https://access.redhat.com/solutions/104833) 및 bash <()구문:

echo "MESSAGE BODY" | mailx -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') [email protected]

mutt와 동일한 예:

echo "MESSAGE BODY" | mutt -s "SUBJECT" -a <(echo something | sed 's/thing/thong/g') -- [email protected]

모든 내용은 <()bash에 의해 실행되며 임시 파일이 생성되어 명령의 매개 변수로 제공됩니다.

답변2

질문에는 파일을 생성하지 않은 이유가 나와 있지 않습니다. 해당 이유에 따라 질문한 접근 방식이 효과가 없을 경우 근본적인 문제를 다른 방식으로 해결할 수 있는 대체 솔루션이 있을 수 있습니다.

  • 파일에 영구 저장소에 남겨두고 싶지 않은 중요한 데이터가 포함되어 있다는 점이 우려되는 경우 해당 파일을 램디스크에 쓸 수 있습니다. 메일 프로그램이 파일을 tmp 디렉터리나 초안 폴더로 복사하지 않도록 주의하세요.

  • 파일이 너무 커서 영구 저장소에 들어갈 수 없다는 점이 우려된다면 수신자가 파일과 중간 MTA를 여는 데 어려움을 겪을 수도 있다는 점을 고려해 볼 수 있습니다. 메일 프로토콜 대신 다른 프로토콜을 고려할 수도 있습니다.

관련 정보