Cron의 이메일에 대한 "보낸 사람 :"필드를 변경하는 방법은 무엇입니까?


34

nullmailer를 통해 원격 SMTP를 사용하며 From 필드를 특정 이름으로 설정해야하지만 cron은 root@my.sweet.server.com으로 설정해야합니다.

어떻게 me@ya.ru와 같은 것으로 바꿀 수 있습니까?


어떤 크론 구현 (및 OS)?
— Kimvais

다른 솔루션에 대해서는이 질문을 참조하십시오 : serverfault.com/questions/438843/…
— robin

답변:


13

FROM 주소를 변경할 수 있다고 생각하지 않습니다 (누군가는 MAILFROM 옵션을 추가해야합니다).

비슷한 결과를 얻으려면 다음과 같이 할 수 있습니다.

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"

모든 출력은 mail 명령으로 파이프되므로 MAILTO 변수는 전혀 사용되지 않습니다.

받는 사람 주소를 설정해야하지만 $ MAILTO 변수를 사용할 수 있습니다. -는 나머지 옵션을 sendmail 옵션으로 설정하여 -r 및 -F 옵션을 사용할 수 있습니다.

-s는 주제입니다

-r은 회신 주소입니다

-F는 발신자의 이름입니다 (이메일 클라이언트에서보기 좋게 만듭니다).


serverfault.com/a/437319/30697 은 아마도 허용 된 답변이어야합니다.
— lkraav

34

최신 버전의 cron은 crontab 형식의 "MAILFROM = ..."을 허용합니다. "man 5 crontab"을 사용해보십시오. MAILFROM을 언급하면 ​​해당 버전이이를 지원해야합니다. 찾을 문구는 MAILTO에 대한 단락 끝 부분에 있으며 다음과 같아야합니다.

If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.


6
"현대"는 무엇을 의미합니까? 변경 로그 또는 설명서에서 볼 수있는 데비안 불안정 (3.0pl1-124)의 최신 버전의 cron에서는 지원하지 않습니다.
— Flimzy

thx, 이것은 Archlinux에서 나를 위해 일했습니다. 크론에는 여러 가지 맛이 있습니다. 데비안의 ISC는 2004 년에 시작되었으므로 "현대"의 정의를 확장하고 있지만 어떤 시스템에 사용되고 있는지에 대한 정보는 없습니다.
— RuiDC

1
불행하게도, (적어도 14.04의 같은 LTS) 우분투의 크론은 언급이없는 MAILFROM의를 man 5 crontab.
— Arto Bendiken

4
데비안 / 우분투 cronie를 대체하기 위해 설치할 수 있습니다 cron. Ta-daa : MAILFROM존재 :
— Andreas Klöckner

1
cronie는 Ubuntu 16.04에 없습니다
— alex k

7

/ etc / mailname은 FROM 주소의 도메인 이름 부분을 포함합니다. / etc / mailname에 'somecompany.com'이 포함 된 경우 루트 용으로 실행중인 크론은 보낸 사람이 root@somecompany.com입니다.


2
여기에 몇 가지 정보가 있습니다 : wiki.debian.org/EtcMailName-nullmailer 가 그것을 사용하는지 말하지 않습니다. sendmail을 사용하는데 제대로 작동하지 않는 것 같습니다.
— Zitrax

5

환경 변수 또는 명령 줄을 통해 주소에서 nullmailer를 설정할 수 있습니다. 명령 행 인수는 다음 -f과 -F각각 보낸 사람 주소 및 전체 이름.

일반적으로 crontab에서 환경 변수를 설정할 수 있습니다.

NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"

5 0 * * * /usr/local/bin/daily.sh

그는 FROM에 대해 묻습니다 : TO TO :
— Kimvais

흠, 이것은 알 수없는 이유로 작동하지 않습니다.
— Alexander Artemenko

3

나를 위해 시스템에서 보낸 사람 주소를 변경하는 가장 쉬운 방법은 다음 ~/.mailrc과 같은 내용 으로 파일 을 만드는 것입니다.

set name="My Full Name"
set from="myrealemail@example.com"

mail내 사용자로 실행되는 모든 명령은 이제이 설정을 사용합니다.



0

또 다른 간단한 대안은 mutt를 사용하는 것입니다.

  • 다음과 같이 cron을 실행하는 사용자의 홈 디렉토리에 .muttrc를 작성하십시오.

    realname = "Joe User"설정 from = "user @ host"설정 use_from = yes

  • mutt 명령이 포함 된 스크립트를 실행하거나 cron 명령을 파이프하여 이메일을 보내도록 mutt하십시오.

mutt 전송 및 이메일 전송 전에 .muttrc 파일에서 From 헤더를 설정합니다.


0

나는 변경했다 /etc/mail/sendmail.cf하고 /etc/mail/sendmail.mc있기 때문에, /etc/mailname사용하지 않았다. 그러나 도메인이 아닌 도메인 만 변경합니다.


0

발신자 도메인을 변경하기 위해 적용 할 수있는 몇 가지 사항은 다음과 같습니다.

Edit this file: /etc/mailname and change to:
    example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix

-2

이는 user @ domain에서 메일로 발송됩니다. 사용자는 cron이 실행중인 로그인 이름이므로 사용자 'me'을 작성하고 해당 사용자로 cron 작업을 실행해야합니다.

그런 다음 도메인을 변경하려면 다른 가능성이 있습니다. 호스트 파일 항목을 변경해야 할 수도 있습니다 (또는 내 컴퓨터에서 우분투 상자를 구성했을 때)-변경 / etc / mailname -원하는 도메인이 되십시오.


1
이것은 사실이 아닙니다. 적어도 많은 경우에는 그렇지 않습니다. 예를 들어 내 시스템에서는 'user @ domain'이 아닌 'user'에서만 전송됩니다. 로컬 도메인 이름을 추가하는 것은 MTA의 책임입니다. 내 MTA (너무 복잡하고 설명하기가 지루한 이유로)가 도메인 이름을 추가하지 않는 경우 (예 : 광산)에서 중요합니다.
— Flimzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.