Unix "mail"에서 "From :"주소 변경


89

사용 유닉스 명령 행에서 메시지를 보내기 mail TO_ADDR에서 이메일로 결과를 $USER@$HOSTNAME. 에 의해 삽입 된 "보낸 사람 :"주소를 변경하는 방법이 mail있습니까?

기록을 위해 Ubuntu에서 GNU Mailutils 1.1 / 1.2를 사용하고 있습니다 (그러나 Fedora 및 RHEL에서 동일한 동작을 보았습니다).

[편집하다]

$ mail -s 테스트 chris@example.org                                                                  
참조 : 
보낸 사람 : foo@bar.org

테스팅
.

수확량

주제 : 테스트
받는 사람 : <chris@example.org>
X-Mailer : mail (GNU Mailutils 1.1)
메시지 ID : <E1KdTJj-00025z-RK @ localhost>
보낸 사람 : <chris @ localhost>
날짜 : 2008 년 9 월 10 일 수요일 13:17:23 -0400

보낸 사람 : foo@bar.org

테스팅

"From : foo@bar.org"행은 헤더의 일부가 아니라 메시지 본문의 일부입니다.


1
이것은 유닉스의 어떤 맛입니까? 그리고 어떤 메일 버전? 그것이 작동하지 않는 곳을 알고 싶습니다.
— Vinko Vrsalovic

음, 거의 다. mailx 또는 berkeley 메일을 사용하는 사람은 누구나 그렇게 볼 수 있습니다. 헤더에 영향을 미치려면 전체 헤더를 작성하고 rmail 또는 sendmail로 직접 보내십시오.
— Thomas Kammeyer

아, 죄송합니다. 저는 GenToo를 실행합니다.
— Thomas Kammeyer

기록을 위해 저는 mailx를 사용하고 있으며 Chris가 제공하는 예제가 작동합니다. 아니면 그게 무슨 뜻입니까?
— Vinko Vrsalovic

Vinko, 어떤 버전의 UN * X를 실행하고 있습니까? 당신이 그의 결과를 얻거나 그의 필요를 해결할 원하는 행동을 얻는다는 "일"을 의미합니까? 플랫폼에서 메시지 제출이 작동하는 방식과 클라이언트가 이전에 빈 줄을 추가하는지 여부에 따라 어느 정도 달라집니다
— Thomas Kammeyer

답변:


109

내 버전의 메일 (Debian linux 4.0)에서 소스 / 답장 주소를 제어하기 위해 다음 옵션이 작동합니다.

  • -a 보내는 메일 헤더에 추가됩니다 명령 행에서 헤더 : 추가 헤더 스위치,에서을 공급, 적용
  • $의 ReplyTo의의 환경 변수는 회신을 지정합니다 : 헤더

그래서 다음 순서

export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'

내 메일 클라이언트에서 결과는 cms-sends@example.com에서 보낸 메일이며, 모든 회신의 기본값은 cms-replies@example.com입니다.

NB : Mac OS 사용자 : -a가 없지만 $ REPLYTO가 있습니다.

NB (2) : CentOS는 사용자가 많은 의견 제시는 사용하는 데 필요한 추가 -r하지-a

NB (3) : 이 답변은 10 년 이상되었습니다 (1). Google에서 올 때 유의하시기 바랍니다.


확인하기 위해 여기서 다시 테스트했는데 제대로 작동합니다. 모든 메일 클라이언트가 Reply-To에서 잘 작동하는 것은 아니지만 지금까지 해결 된 문제라고 생각했습니다. REPLYTO env 변수는 man 페이지에 언급되어 있습니다. 다른 UNIX 메일러는이를 존중합니다. emacs 등입니다. 그래도 수정 사항이있는 것 같습니다.
— cms

메일 클라이언트가 아닌 것 같습니다. 원시 메시지 텍스트에 Reply-To 헤더가 표시되지 않습니다. 하지만 예, -a면 충분합니다.
— Chris Conway

1
아니요, 그렇지 않습니다. 그러나 : "전체 GNU mailutils 매뉴얼은 라이센스상의 이유로 데비안 시스템에서 사용할 수 없습니다." -aReply-To : ... 작동합니다.
— Chris Conway

또한 gnu.org/software/mailutils/manual/mailutils.html에서 REPLYTO에
— Chris Conway

4
CentOS에서이 mail -a옵션은 "attachemnet"을 의미합니다. 나는 -r같은 것을 사용해야했다mail -r from@whatever.com
— equivalent8

42

Centos 5.3에서는 다음을 수행 할 수 있습니다.

mail -s "Subject" user@address.com -- -f from@address.com < body

이중 대시는 메일이 -f 인수를 구문 분석하는 것을 중지하고 sendmail 자체에 전달합니다.


3
작동하지 않습니다. 이제 3 개의 주소가 주소에 추가됩니다. to 주소, f 주소 및 localdomain
— shorif2000 2014-06-09

2
도움이
— Wil

1
CentOS 6.3에서 작동하지 않습니다. -r 플래그를 사용하여 아래 @ ubuntu-fanboy 대답을 시도하십시오.
— skytaker

26

GNU mailutils의 'mail'명령으로는이 작업을 수행 할 수 없습니다 (적어도 쉽게). 그러나 'heirloom-mailx'를 설치하면 메일 명령 (mailx)에 '-r'옵션이있어 필드의 기본 '$ USER @ $ HOSTNAME'을 무시합니다.

echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com

'mailx'에서는 작동하지만 'mail'에서는 작동하지 않습니다.

$ ls -l / usr / bin / mail
lrwxrwxrwx 1 루트 루트 22 2010-12-23 08:33 / usr / bin / mail-> / etc / alternatives / mail
$ ls -l / etc / alternatives / mail
lrwxrwxrwx 1 루트 루트 23 2010-12-23 08:33 / etc / alternatives / mail-> / usr / bin / heirloom-mailx

5
mailUbuntu 14.04 LTS에 사전 설치된 GNU mailutils 명령이 -r옵션을 지원 하므로 발신자 주소를 쉽게 설정할 수 있다는 사실을 아는 것이 유용 할 수 있습니다.
— gerlos

데비안 9.11에서 테스트했으며 옵션도 작동합니다.
— Fedir RYKHTIK

14
mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt

위의 내용은 내 솔루션입니다 .... 모든 추가 헤더는 보낸 사람과 답장을 보내기 전에 추가 할 수 있습니다. 헤더 구문을 추가하기 전에 알고 있는지 확인하세요 .... 이것은 나를 위해 완벽하게 작동했습니다.


1
이것은 당신의 모범으로 나를 위해 일하고 있습니다 ... 이메일 주소 제목 등을 변경하면 모든 헤더가 표시됩니까?
— bsmoo

7

또한 -F option보낸 사람의 이름을 지정하는 데 사용 하는 것이 좋습니다 .

이 같은:

mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com

또는 사용 가능한 옵션을 살펴보십시오. http://www.courier-mta.org/sendmail.html


5

다음과 같이 보낸 사람 이름과 보낸 사람 주소를 모두 설정할 수도 있습니다.

 echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t

어떤 이유로 통과 -F'Some Name'하고 -fexample2@example.com작동하지 않지만 -tsendmail에 전달하는 것은 작동하며 "쉬운"것입니다.


4

다음은 몇 가지 옵션입니다.

  • 충분한 권한이있는 경우 generics 테이블을 사용하여 다시 작성하도록 sendmail을 구성하십시오.

  • 전체 헤더를 직접 작성 (또는 자신에게 메일로 보내고 모든 헤더와 함께 전체 메시지를 저장하고 다시 편집 한 다음 명령 줄에서 rmail로 전송)

  • sendmail로 직접 보내고 "-f"명령 줄 플래그를 사용하고 "보낸 사람 :"줄을 메시지에 포함하지 마십시오.

이것들은 모두 똑같은 것은 아니지만 더 자세히 살펴볼 것입니다.

내 휴대용 컴퓨터에는 보내는 메일 서버에 대한 클라이언트로 인증하는 sendmail이 있으며 제네릭을 사용하여 반송 메일이 다른 계정으로 오도록합니다. 매력처럼 작동합니다. 나는 fetchmail로 수신 메일을 집계합니다.


4

나는 위의 모든 답변에서 이것을 파생했습니다. 내가 그들 각각을 시도했을 때 아무것도 효과가 없었습니다. 위의 모든 답변을 결합하여 많은 흔적과 오류를 겪고 이에 대해 결론을 내 렸습니다. 이것이 당신에게 효과가 있는지 확실하지 않지만 Ununtu 12.04 및 RHEL 5.4에서 저에게 효과적이었습니다.

echo "This is the body of the mail" | mail -s 'This is the subject' '<receiver-id1@email.com>,<receiver-id2@email.com>' -- -F '<SenderName>' -f '<from-id@email.com>'

수신자 ID를 원하는만큼 추가하여 원하는 수의 사람에게 메일을 보낼 수 있으며 메일은 from-id@email.com 에서 SenderName 으로 전송됩니다.

도움이 되었기를 바랍니다.


이것은 / usr / bin / mail에서 작동하지 않습니다. 아마도 당신의 명령은 sendmail에 대한 것입니다.
— basZero

3

다른 OS와 동일한 지 모르겠지만 OpenBSD에서 mail 명령은 다음 구문을 사용합니다.

mail to-addr ... -sendmail-options ...

sendmail에는 FROM : 필드에 대한 이메일 주소를 나타내는 -f 옵션이 있습니다. 다음 명령이 저에게 효과적입니다.

mail recepient@example.com -f from@example.com

나를 위해 작동합니다! (또한 오픈 BSD - 맥북 프로.)
— Aeonaut

1
업데이트-이메일 수신자는 이전에 내 로컬 계정 이름 ( from@example.com예 : "Aeonaut from@example.com")을 계속 볼 수 있습니다. 이것을 변경하는 방법을 아십니까?
— Aeonaut

3
나를 위해 작동하지 않습니다. (os x mountain lion) "mail : -f와 보낼 사람을 줄 수 없습니다."
— Jonny 2013 년

3

감사합니다 BEAU

mail -s "Subject" user@address.com -- -f from@address.com

나는 이것을 발견했고 그것은 나를 위해 작동합니다. CentOS 5의 메일 8.1에 대한 매뉴얼 페이지에는 이에 대해 언급하지 않습니다. 에 대한-f 옵션은 매뉴얼 페이지는 말한다 :

-f 시스템 메일 함 대신 파일 피연산자에 의해 명명 된 파일에서 메시지를 읽습니다. (폴더도 참조하십시오.) 파일 피연산자가 지정되지 않은 경우 시스템 메일 함 대신 mbox에서 메시지를 읽으십시오.

어쨌든 이것은 찾아서 좋습니다. 감사합니다.


1
-f물론 mail앞에 --. 그 옵션은 당신의 MTA에 인도된다
— 안톤

3

데비안 7에서는 여전히이 질문의 답변을 사용하여 보낸 사람 주소를 올바르게 설정할 수 없었지만 (항상 서버의 호스트 이름이 될 것입니다) 이렇게 해결했습니다.

가보 우편물 설치

apt-get install heirloom-mailx

기본값인지 확인하십시오.

update-alternatives --config mailx

메시지를 작성하십시오.

mail -s "Testing from & replyto" -r "sender <sender@example.com>" -S replyto="sender@example.com" recipient@example.net < <(echo "Test message")

이 update-alternatives명령 은 무엇을 하고 있습니까? 그것은 나에게 3 개의 선택권을 준다. 그리고 나는 의아해한다.
— Stephane

1

CentOS에서 이것은 나를 위해 일했습니다.

echo "email body" | mail -s "Subject here" -r from_email_address email_address_to

1

echo "body" | mail -S from=address@foo.com "Hello"

-S를 사용하면 헤더 등을 수정하는 가장 쉬운 방법 인 많은 문자열 옵션을 지정할 수 있습니다.


1

에코 "테스트"| mailx -r fake@example.com -s '테스트'email@example.com

OpenBSD에서 작동합니다.


0

이것은 나를 위해 일했다

echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root

0

CentOS 5.5에서 도메인에서 기본값을 설정하는 가장 쉬운 방법은 호스트 파일을 수정하는 것입니다. 호스트 파일에 WAN / 공용 IP 주소가 포함 된 경우 나열된 첫 번째 호스트 이름을 수정하기 만하면됩니다. 예를 들어 호스트 파일은 다음과 같습니다.

...
11.22.33.44 localhost 기본 도메인 whatever-else.com
...

whatever-else.com에서 보내려면 다음과 같이 whatever-else.com이 먼저 나열되도록 수정하면됩니다.

...
11.22.33.44 whatever-else.com localhost 기본 도메인
...

다른 배포판 (또는 CentOS 버전)에 대해서는 말할 수 없지만 특정 경우에는 위의 내용이 완벽하게 작동합니다.


0

어떤 날 온 주소 지정에 회신 가질 수 Ubuntu 16.04와 UTF-8인코딩 및 파일 첨부 :

메일 클라이언트를 설치합니다.

sudo apt-get install heirloom-mailx

SMTP 구성 편집 :

sudo vim /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
FromLineOverride=YES
AuthUser=???@gmail.com
AuthPass=???
UseSTARTTLS=YES

메일 보내기 :

sender='send@domain.com'
recipient='recipient@domain.com'
zipfile="results/file.zip"
today=`date +\%d-\%m-\%Y`
mailSubject='My subject on the '$today
read -r -d '' mailBody << EOM
Find attached the zip file.

Regards,
EOM
mail -s "$mailSubject" -r "Name <$sender>" -S replyto="$sender" -a $zipfile $recipient < <(echo $mailBody)

0

위의 솔루션 중 어느 것도 나를 위해 일하지 않습니다 ...

#!/bin/bash

# Message
echo "My message" > message.txt

# Mail
subject="Test"
mail_header="From: John Smith <john.smith@example.com>"
recipients="recipient@example.com"

#######################################################################
cat message.txt | mail -s "$subject" -a "$mail_header" -t "$recipients"

-1

이전에 제공된 답변은 CentOS5에서 작동하지 않았습니다. 나는 똥을 설치했다. 많은 옵션이 있습니다. mutt를 사용하면 다음과 같이합니다.

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.