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유틸리티 우리는에서 파일을 보낼 수 있습니다 unix로 mail 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

사용중인 버전에 따라 다릅니다. 서로 다른 옵션을 가진 호환되지 않는 경쟁 mail및 mailx명령이 여러 개 있습니다.
— 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.