이 질문에는 이미 답변이 있습니다.
나는 리눅스 쉘을 운영하는 서버에있다. 수신자에게 간단한 파일을 메일로 보내야합니다. 이를 수행하는 방법, 선호하는우편명령?
최신 정보: mutt를 대신 사용하여 좋은 해결책을 얻었습니다.
$ echo | mutt -a syslogs.tar.gz admin@domain.org
uuencode를 사용하는 예제 :
uuencode surfing.jpeg surfing.jpeg | mail sylvia@home.com
참고 문헌 :
http://www.shelldorado.com/articles/mailattachments.html
$ echo | mutt -a syslogs.tar.gz admin@domain.org
그러나 메일 (또는 mailx)이 아닌 mutt를 사용합니다.
mail
내가 시도한 현대 리눅스의 모든 버전에서 그렇게 할 수있다. 다른 소프트웨어 필요 없음 :
matiu@matiu-laptop:~$ mail -a doc.jpg someone@somewhere.com
Subject: testing
This is a test
EOT
ctrl + d를 입력하면됩니다.
mail
이것을지지하지만 분명히 "평범하지 않은mail
" 오히려 현대화 된 버전이나 변형 된 것입니다. 사용중인 버전과 플랫폼을 지정하면 도움이됩니다. - tripleee
mailx도움이 될 수도 있습니다. mailx 맨 페이지에서 :
-a file
Attach the given file to the message.
아주 쉽지, 그렇지?
-a
방법Specify additional header fields on the command line such as "X-Loop: foo@bar" etc. You have to use quotes if the string contains spaces. This argument may be specified more than once, the headers will then be concatenated.
- Janus Troelsenmailx
지원하지 않습니다.-a
(CentOS의 mailx-8.1.1-44.2.2 패키지) - einpoklum-a
어느 쪽이든 (OS X 10.7.5) - Stefan Schmidt
내 대답은 메일 외에 base64가 필요하지만 uuencode 버전 중 일부는 -m을 사용하여 base64를 수행 할 수도 있고 mime을 잊어 버리고 일반 uuencode 출력을 사용할 수도 있습니다.
FROM=me@mydomain.com
TO=someone@mydomain.com
SUBJECT="Auto emailed"
MIME="application/x-gzip" #Adjust this to the proper mime-type of file
FILE=somefile.tar.gz
ENCODING=base64
boundary="---my-unlikely-text-for-mime-boundary---$$--"
(cat <<EOF
From: $FROM
To: $REPORT_DEST
Subject: $SUBJECT
Date: $(date +"%a, %b %e %Y %T %z")
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="$boundary"
Content-Disposition: inline
--$boundary
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
This email has attached the file
--$boundary
Content-Type: $MIME;name="$FILE"
Content-Disposition: attachment;filename="$FILE"
Content-Transfer-Encoding: $ENCODING
EOF
base64 $FILE
echo ""
echo "--$boundary" ) | mail
sendmail -t
대신. - Kyle MacFarlanemail
MIME 입력을 막지는 못하지만 전환 할 수 있습니다.| sendmail -oi -t
이 경우 파이프 라인의 끝에서; 해당 기능을 필요로하지 않습니다.mail
래퍼는 더 이상이 시점에서 당신을 제공합니다. - tripleeeecho "--$boundary--"
닫는 괄호 앞에 두 개의 대시가 끝에 붙어 최종 닫는 경계로 표시됩니다. - tripleee
mailx -a /path/to/file email@address
대화 형 모드 ( "제목 :"과 빈 줄을 묻는 메시지가 표시됨)로 들어가서 주제를 입력 한 다음 본문을 입력하고 적중Ctrl+디(EOT)를 마칩니다.
mailx: illegal option -- a
- isomorphismesmailx
GNU coreutils의 일부가 아닙니다. 당신은 아마 버전을 찾을 수 있습니다mailx
이 사용법을 지원하는 OSX에 대해서는 하나의 링크가 없지만 이것은 전혀 도움이되지 않습니다. 여러 버전이 있으며이 버전 중 상당수는이 용도를 지원하지 않습니다. - tripleee
mpack -a -s "이봐,이게 너의 보고서 역할을하니?" -m 0 -c application / x-tar-gz survey_results.tar.gz hesco@example.net
mpack과 munpack은 mailx를 확장하기 위해 metamail과 함께 작동합니다. html 마크 업과 첨부 파일이 어지럽게 얽힌 현대적인 이메일을 유용하게 사용하십시오.
이 4 가지 패키지를 함께 사용하면 처리 할 수 있습니다. gui 메일 클라이언트에서 할 수있는 모든 전자 메일.
우분투 10.4를 사용하여, 이것은 mutt 해법이 쓰여지는 방법이다.
echo | mutt -a myfile.zip -- admin@domain.org
mutt
자작작 - Stefan Schmidt
mutt 나 mailx를 사용하거나 메일이 "-a"를 지원하지 않는다고 말하는 사람들이 많이 있습니다.
첫째, mailutils의 우분투 14.0.4 메일은 다음을 지원합니다.
mail -A filename -s "subject"email@example.com
둘째, "man mail"명령을 사용하고 "첨부"를 검색하여
다음은 비정상적인 프로그램 기능에 의존하지 않는 Unix / Linux 설치에 적합한 솔루션입니다. 이는 여러 줄의 메시지 본문, 여러 첨부 파일 및 기타 모든 일반 기능을 지원합니다.mailx
.
불행히도, 그것은 한 줄에 들어 맞지 않습니다.
#!/bin/ksh
#Get the date stamp for temporary files
DT_STAMP=`date +'%C%y%m%d%H%M%S'`
#Create a multi-line body
echo "here you put the message body
which can be split across multiple lines!
woohoo!
" > body-${DT_STAMP}.mail
#Add several attachments
uuencode File1.pdf File1.pdf > attachments-${DT_STAMP}.mail
uuencode File2.pdf File2.pdf >> attachments-${DT_STAMP}.mail
#Put everything together and send it off!
cat body-${DT_STAMP}.mail attachments-${DT_STAMP}.mail > out-${DT_STAMP}.mail
mailx -s "here you put the message subject" nobody@test-address.com < out-${DT_STAMP}.mail
#Clean up temporary files
rm body-${DT_STAMP}.mail
rm attachments-${DT_STAMP}.mail
rm out-${DT_STAMP}.mail
리눅스에서 나는 제안 할 것이다.
#FILE_TO_BE_ATTACHED = abc.gz
uuencode abc.gz abc.gz > abc.gz.enc #This is optional, but good to have
#to prevent binary file corruption.
#also it make sure to get original
#file on other system, w/o worry of endianness
#Sending Mail, multiple attachments, and multiple receivers.
echo "Body Part of Mail" | mailx -s "Subject Line" -a attachment1 -a abc.gz.enc "youremail@domain.com anotheremail@domain.com"
메일 첨부 파일을 받으면 uuencode를 사용했다면 uudecode가 필요합니다.
uudecode abc.gz.enc
#uuencode의 두 번째 인수와 같은 이름의 파일을 원본으로 생성합니다.
mailx
지원하는-a
MIME 첨부 파일을 포함하기 때문에 별도로 필요가 없습니다.uuencode
그들. 첨부는 다음과 같은 적합한 콘텐츠 전송 인코딩으로 콘텐츠를 래핑합니다.base64
필요한 경우 - 사실더휴대 가능하고 견고한uuencode
,뿐만 아니라 훨씬 더 유용합니다. - tripleee
mailx로 할 수있는 일 :
mailx -s "My Subject" -a ./mail_att.csv -S from=noreply@foo.com recipient@bar.com < ./mail_body.txt
이것은 GNU 리눅스 서버에서 훌륭하게 작동했지만 유감스럽게도 devx 환경은 구식 BSD 버전의 mailx 만있는 Mac OsX입니다. 일반적으로 Coreutils를 사용하여 Mac BSD보다 나은 유닉스 명령을 얻지 만 mailx는 Coreutils에 없습니다.
관련없는 스레드에서 노트 필 드에서 해결책을 찾았습니다 (https://serverfault.com/questions/196001/using-unix-mail-mailx-with-a-modern-mail-server-imap-instead-of-mbox-files)에서 Heirloom mailx OSX 바이너리 패키지를 다운로드했다.http://www.tramm.li/iWiki/HeirloomNotes.html. 위의 명령 구문을 처리 할 수있는 더 많은 기능을 갖춘 mailx가 있습니다.
(가난한 교차 연결 또는 기여에 대한 사과, 나는이 사이트를 처음 사용합니다.)
나는 사용한다mailutils혼란스러운 부분은 파일을 첨부하기 위해 자본 A 매개 변수를 사용해야한다는 것입니다. 아래는 예제입니다.
echo 'here you put the message body' | mail -A syslogs.tar.gz admin@domain.org
메일 명령이 mailutils에서 온 것인지 알고 싶다면 "mail -V"를 실행하십시오.
root@your-server:~$ mail -V
mail (GNU Mailutils) 2.99.98
Copyright (C) 2010 Free Software Foundation, inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
mutt
그것은 멋지게 그리고 합리적으로 이식 가능합니다. - tripleee