UNIX mailx 명령을 통해 어떻게 이메일을 보낼 수 있습니까?


답변:


109

$ echo "something" | mailx -s "subject" recipient@somewhere.com

첨부 파일을 보내다

$ uuencode file file | mailx -s "subject" recipient@somewhere.com

첨부 파일을 보내고 메시지 본문을 작성하려면

$ (echo "something\n" ; uuencode file file) | mailx -s "subject" recipient@somewhere.com

4
나는 그것을 시도했지만 응답이 없습니다. 오류 메시지를 제공하거나 myname@gmail.com으로 메일을 보내지 않습니다. 서버 구성이 필요합니까?
user269484

2
구성 할 필요가 없습니다. 인터넷 연결을 확인하십시오. 나는 케이블을 통해 인터넷에 직접 연결되어 있으며 프록시 등을 사용하지 않으므로 내 편에서 작동합니다.
ghostdog74

2
받은 편지함에서 오류 메시지 도 확인해야 합니다. 즉 실행합니다 mail.
hafichuk

2
그러나 uuencode이것은 우리가 오늘날 "첨부물"이 의미하는 것을 생산하지 못하는 과거 천년기의 레거시 기술입니다. 기본적으로 메시지 텍스트 끝에 기계가 읽을 수있는 뒤죽박죽 조각을 넣습니다. 이 시대에는 적절한 MIME 인식 메일러를 통해 더 나은 서비스를받을 수 있습니다. 안타깝게도 mailxMIME 기능에 대한 보편적으로 지원되는 대체 기능은 없지만을 가지고 있다면 mutt아마도 저항이 가장 적은 경로 일 것입니다.
tripleee

5
@ user269484 Gmail은 승인되지 않은 IP 주소의 이메일을 허용하지 않습니다. support.google.com/mail/answer/10336

34

여기 있어요 :

echo "Body" | mailx -r "FROM_EMAIL" -s "SUBJECT" "To_EMAIL"

추신. 본문과 제목은 큰 따옴표로 묶어야합니다. 에서 따옴표를 제거 FROM_EMAIL하고 To_EMAIL전자 메일 주소를 대체하면서.


1
Mac에서 -r mailx : illegal 옵션을 사용하면 mailx 명령에서 오류가 발생합니다.-r 사용법 : mailx [-EiInv] [-s subject] [-c cc-addr] [-b bcc-addr] [ -F] to-addr ... mailx [-EHiInNv] [-F] -f [name] mailx [-EHiInNv] [-F] [-u user] mailx -e [-f name] mailx -H
jcpennypincher

-S from=a@b.com
Kalpesh Soni

6
mailx -s "subjec_of_mail" abc@domail.com < file_name

를 통해 mailx유틸리티 우리는에서 파일을 보낼 수 있습니다 unixmail server. 위 코드에서 첫 번째 매개 변수는 -s "subject of mail" 두 번째 매개 변수이고 mail ID마지막 매개 변수는 우리가 첨부하려는 파일의 이름입니다.


1
이것은 본문에 파일의 내용을두고, 파일을 첨부하지 않습니다
거스

5
mail [-s subject] [-c ccaddress] [-b bccaddress] toaddress

-c 및 -b는 선택 사항입니다.

-s : 제목을 지정하고 제목에 공백이 있으면 따옴표를 사용합니다.

-c : 쉼표로 구분 된 사용자 목록에 참조를 보냅니다.

-b : 쉼표로 구분 된 사용자 목록에 숨은 참조를 보냅니다.

내 대답이 당신의 의심을 명확히하기를 바랍니다.


5

MUTT 명령으로 더 빠름

echo "Body Of the Email"  | mutt -a "File_Attachment.csv" -s "Daily Report for $(date)"  -c cc_mail@g.com to_mail@g.com -y
  1. -c 이메일 참조 목록
  2. -s 주제 목록
  3. -y 메일 보내기

다음과 같이 작동하도록 "-"로 첨부 파일을 분리해야했습니다.echo "" | mutt -s "test" -a ./file -- name@mail.com -y
subtleseeker

4

man 페이지에서 :

메일 보내기

한 명 이상의 사람에게 메시지를 보내려면 메일을 보낼 사람의 이름 인 인수를 사용하여 mailx를 호출 할 수 있습니다. 그런 다음 사용자는 메시지를 입력하고 줄 시작 부분에 'control-D'를 입력해야합니다.

즉, mailx는 표준 입력에서 보낼 내용을 읽고 평소와 같이 리디렉션 할 수 있습니다. 예 :

ls -l $HOME | mailx -s "The content of my home directory" someone@email.adr

3
echo "Sending emails ..."
NOW=$(date +"%F %H:%M")
echo $NOW  " Running service" >> open_files.log
header=`echo "Service Restarting: " $NOW`


mail -s "$header" abc.xyz@google.com,   \
              cde.mno@yahoo.com, \ < open_files.log

1

발신 주소 사용자 지정

MESSAGE="SOME MESSAGE"
SUBJECT="SOME SUBJECT"
TOADDR="u@u.com"
FROM="DONOTREPLY"

echo $MESSAGE | mail  -s "$SUBJECT" $TOADDR  -- -f $FROM

man mail에서 제외 : -f [file] 처리를 위해 사용자의 mbox (또는 지정된 파일) 내용을 읽습니다. mailx가 종료되면 삭제되지 않은 메시지를이 파일에 다시 기록합니다. 문자열 파일은 아래 폴더 명령에 설명 된대로 처리됩니다.
ZJ Lyu

사용중인 버전에 따라 다릅니다. 서로 다른 옵션을 가진 호환되지 않는 경쟁 mailmailx명령이 여러 개 있습니다.
tripleee

1

다음은 여러 첨부 파일이있는 메일 전송을 처리하는 다기능 기능입니다.

enviaremail() {
values=$(echo "$@" | tr -d '\n')
listargs=()
listargs+=($values)
heirloom-mailx $( attachment=""
for (( a = 5; a < ${#listargs[@]}; a++ )); do
attachment=$(echo "-a ${listargs[a]} ")
echo "${attachment}"
done) -v -s "${titulo}" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://$1 \
-S from="${2}" \
-S smtp-auth-user=$3 \
-S smtp-auth-password=$4 \
-S ssl-verify=ignore \
$5 < ${cuerpo}
}

함수 호출 : enviaremail "smtp.mailserver : port" "from_address" "authuser" " 'pass'" "destination" "공백으로 구분 된 첨부 파일 목록"

참고 : 호출에서 큰 따옴표를 제거하십시오.

또한 함수를 사용하기 전에 이메일의 $ titulo (제목) 및 $ cuerpo (본문)를 외부 적으로 정의해야합니다.


0

두 명 이상 또는 DL을 보내려면 :

echo "Message Body" | mailx -s "Message Title" -r sender@someone.com receiver1@someone.com,receiver_dl@.com

여기:

  • -s = 제목 또는 메일 제목
  • -r = 보낸 사람 메일 또는 DL

에코가 메시지 본문을 전달하는 데 사용되는 이유를 설명해 주시겠습니까? 이것을 생략하고 MailX에서 실행하면 입력을 기다리는 것처럼 커서가 깜박입니다.
LonelyRogue
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.