문제

다음을 사용하여 Unix 명령줄에서 메시지 보내기 mail TO_ADDR 그 결과 다음 사람으로부터 이메일이 도착합니다. $USER@$HOSTNAME.삽입된 "보낸 사람:" 주소를 변경할 수 있는 방법이 있습니까? mail?

기록상으로 저는 Ubuntu에서 GNU Mailutils 1.1/1.2를 사용하고 있습니다(그러나 Fedora와 RHEL에서도 동일한 동작을 보았습니다).

[편집하다]

$ mail -s Testing chris@example.org                                                                  
Cc: 
From: foo@bar.org

Testing
.

수확량

Subject: Testing
To: <chris@example.org>
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <E1KdTJj-00025z-RK@localhost>
From: <chris@localhost>
Date: Wed, 10 Sep 2008 13:17:23 -0400

From: foo@bar.org

Testing

"보낸 사람:foo@bar.org" 줄은 헤더의 일부가 아닌 메시지 본문의 일부입니다.

도움이 되었습니까?

해결책

내 메일 버전(Debian Linux 4.0)에서는 다음 옵션을 사용하여 소스/회신 주소를 제어할 수 있습니다.

  • 그만큼 -ㅏ 스위치를 적용할 추가 헤더에 대해 From:을 제공합니다.보내는 메일 헤더에 추가될 명령줄의 헤더
  • 그만큼 $REPLYTO 환경 변수는 회신 대상을 지정합니다.머리글

그래서 다음 순서

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

내 메일 클라이언트의 결과는 cms-sends@example.com에서 보낸 메일이며, 이에 대한 모든 회신은 기본적으로 cms-replies@example.com으로 설정됩니다.

참고: Mac OS 사용자:당신은 -a 가 없지만 당신은 가지고 있습니다 $REPLYTO

주의사항(2): CentOS 사용자, 많은 댓글 작성자가 사용해야 한다고 추가했습니다. -r ~ 아니다 -a

주의사항(3): 이 답변은 최소 10년이 지난 답변입니다(1). Google에서 방문할 때 이 점을 염두에 두시기 바랍니다.

다른 팁

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

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

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

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

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

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

$ ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2010-12-23 08:33 /usr/bin/mail -> /etc/alternatives/mail
$ ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 2010-12-23 08:33 /etc/alternatives/mail -> /usr/bin/heirloom-mailx
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

위의 내용은 내 솔루션입니다.... 추가 헤더는 응답 바로 뒤와 앞에 추가할 수 있습니다... 추가하기 전에 헤더 구문을 알고 있는지 확인하세요.... 이것은 나에게 완벽하게 작동했습니다.

게다가 사용감도 좋아요 -F option 보낸 사람의 이름을 지정합니다.

이 같은:

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

아니면 사용 가능한 옵션을 살펴보세요.http://www.courier-mta.org/sendmail.html

다음과 같은 방법을 사용하여 보낸 사람 이름과 보낸 사람 주소를 모두 설정할 수도 있습니다.

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

어떤 이유에서인지 지나가다 -F'Some Name' 그리고 -fexample2@example.com 작동하지 않지만 -t sendmail이 작동하고 "쉬움"입니다.

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

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

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

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

이것들이 모두 똑같지는 않지만, 더 자세히 살펴보도록 맡기겠습니다.

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

다른 OS에서도 같은지는 모르겠지만 OpenBSD에서는 mail 명령에 다음과 같은 구문이 있습니다.

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

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

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

고마워요 BEAU

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

방금 이것을 찾았는데 그것은 나에게 효과적입니다.CentOS 5의 메일 8.1 매뉴얼 페이지에는 이에 대한 언급이 없습니다.을 위한 -f 옵션에 대해 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

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

어쨌든 이건 찾기에 좋은 것 같아요. 감사합니다.

나는 위의 모든 답변에서 이것을 파생했습니다.내가 그들 각각을 시도했을 때 아무것도 효과가 없었습니다.나는 위의 모든 답변을 결합하여 많은 추적과 오류를 수행하고 이에 대해 결론을 내렸습니다.이것이 당신에게 효과가 있는지 확실하지 않지만 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

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

Debian 7에서는 이 질문에 대한 답변을 사용하여 보낸 사람 주소를 올바르게 설정할 수 없었지만(항상 서버의 호스트 이름임) 이 방법으로 해결했습니다.

설치하다 가보 메일x

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")

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

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

CentOS에서는 이것이 나에게 효과적이었습니다.

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

이것은 나에게 효과적이었습니다

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

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

...
11.22.33.44 localhost 기본 도메인 뭐든지-else.com
...

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

...
11.22.33.44 뭐든지-else.com localhost 기본 도메인
...

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

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

OpenBSD에서 작동합니다.

내가 사용자 정의 회신 주소를 가질 수 있었던 이유는 무엇입니까? 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)

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

#!/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"

이전에 제공된 답변은 CentOS5에서 작동하지 않았습니다.뮤트를 설치했습니다.그것은 많은 옵션을 가지고 있습니다.mutt를 사용하면 다음과 같이 할 수 있습니다:

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top