[linux] Linux 명령 줄을 사용하여 파일을 전자 메일 첨부 파일로 보내려면 어떻게합니까?

Linux 서버에서 매일 밤마다 실행되는 스크립트를 작성하여 mysqldump각 MySQL 데이터베이스를 .sql 파일로 백업하고 압축 된 .tar 파일로 함께 패키지화했습니다. 다음으로 수행하려는 단계는 보관을 위해 해당 tar 파일을 전자 메일을 통해 원격 전자 메일 서버로 보내는 것입니다. 백업 텍스트 파일을 다음 mailx과 같이 파이핑하여 본문에 원시 스크립트를 이메일로 보낼 수있었습니다 .

$ cat mysqldbbackup.sql | mailx backup@email.com

catmailx수신자의 이메일 주소를 인수로 전달 하여 프로그램에 파이프되는 백업 파일의 텍스트를 에코합니다 .

이것이 내가 필요한 것을 달성하는 동안 한 단계 더 나을 수 있다고 생각합니다. 쉘 스크립트를 사용하거나 압축 된 .tar 파일을 보내는 전자 메일 메시지에 첨부 파일 로 보내는 방법이 있습니까? 헤더 데이터를 포함하고 종종 단어 줄 바꿈 문제가있는 매우 긴 전자 메일 메시지를 처리 ​​해야하는 것보다 낫습니다.



답변

똥개 중 어느 것도 나를 위해 일하지 않았습니다. 이메일 주소가 첨부 파일의 일부라고 생각했습니다. 해야했다 :

echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com


답변

또는 실패한 음소거 :

gzip -c mysqldbbackup.sql | uuencode mysqldbbackup.sql.gz  | mail -s "MySQL DB" backup@email.com


답변

리눅스 버전에 따라 메일이라고 할 수 있습니다. 위의 @David를 인용하려면 :

mail -s "Backup" -a mysqldbbackup.sql backup@email.com < message.txt

또는 :

cat message.txt | mail -s "Backup" -a mysqldbbackup.sql backup@email.com


답변

를 보면 man mailxmailx 프로그램에는 파일을 첨부 할 수있는 옵션이 없습니다. mutt와 같은 다른 프로그램을 사용할 수 있습니다.

echo "This is the message body" | mutt -a file.to.attach -s "subject of message" recipient@domain.com

mutt의 명령 행 옵션은로 표시 될 수 있습니다 mutt -h.


답변

이 시나리오를 위해 만들어진 SendEmail을 사용합니다. 우분투 패키지로 제공되므로 사용할 수 있다고 가정합니다.

sendemail -f sender@some.where -t receiver@some.place -m "Here are your files!" -a file1.jpg file2.zip

http://caspian.dotconf.net/menu/Software/SendEmail/


답변

나는 mpack을 사용합니다.

mpack -s subject file user@example.com

불행히도 mpack은 ‘-‘를 stdin의 별칭으로 인식하지 않습니다. 그러나 다음 작업은 (쉘) 별칭 또는 스크립트로 쉽게 래핑 될 수 있습니다.

mpack -s subject /dev/stdin loser@example.com < file


답변

 echo 'These are contents of my mail' | mailx -s 'This is my email subject' -a /path/to/attachment_file.log email_id@example.com