web-dev-qa-db-ja.com

Cronからのメールの「差出人:」フィールドを変更するにはどうすればよいですか?

Nullmailerを介してリモートSMTPを使用しており、Fromフィールドを特定の名前に設定する必要がありますが、cronは[email protected]として設定します。

どうすれば[email protected]のように変更できますか?

36

FROMアドレスは変更できないと思います(誰かがMAILFROMオプションを追加する必要があります)。

同様の結果を得るには、次のようなことを行うことができます。

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" [email protected] -- -r "[email protected]" -F"Full Name of sender"

すべての出力はメールコマンドにパイプ処理されるため、MAILTO変数はまったく使用されません。

Toアドレスを設定する必要がありますが、$ MAILTO変数を使用できる場合があります。 -は、残りのオプションをsendmailオプションに設定するため、-rおよび-Fオプションを使用できます。

-sは件名です

-rは返信アドレスです

-Fは送信者のフルネームです(電子メールクライアントでは見栄えがよくなります)。

17

最新バージョンのcronは、「MAILFROM = ...」をcrontab形式で受け入れます。 「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.

37
Jon Green

/ etc/mailnameには、FROMアドレスのドメイン名部分が含まれています。/etc/mailnameに「somecompany.com」が含まれている場合、rootで実行されているcronは、root @ somecompany.comとして送信者を持ちます。

8
user171601

Nullmailer fromアドレスは、環境変数またはコマンドラインを使用して設定できます。コマンドライン引数は-fおよび-Fは、それぞれ送信者アドレスとフルネームです。

通常、crontabで環境変数を設定できます。

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

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

私にとって、システムのfromアドレスを変更する最も簡単な方法は、~/.mailrc次のような内容のファイル:

set name="My Full Name"
set from="[email protected]"

ユーザーとして実行するmailコマンドはすべて、これらの設定を使用します。

3
Niels de Vos

送信者ドメインを変更するために適用できるいくつかのことを次に示します。

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

変更しなければならなかった/etc/mail/sendmail.cfおよび/etc/mail/sendmail.mc、なぜなら/etc/mailnameは使用されませんでした。ただし、ユーザーからではなく、ドメインからの変更のみです。

0
Rudie

Eximを使用する場合は、この質問を参照してください。

exim: "From"ヘッダーをエンベロープ "FROM"に書き換えます

「From」アドレスをcronjob所有者に設定する必要があります。 $header_from:をカスタムアドレスに置き換えて、別のアドレスにハードコードすることができます。

0

もう1つの簡単な代替方法は、muttを使用することです。

  • 次のコマンドでcronを実行するユーザーのホームディレクトリに.muttrcを作成します

    set realname = "Joe User" set from = "user @ Host" set use_from = yes

  • Muttコマンドを使用してスクリプトを実行するか、cronコマンドをパイプしてmuttからメールを送信します。

Muttがメールを送信して送信する前に、.muttrcファイルのFromヘッダーを設定します。

0
Chida