ギリギリ行けるお一人様のライン

細かくてスミマセン。
ubuntuの設定でメールアドレスにホスト名が入らないようにできますか。
具体的にはCronから送られてくるメールの、
From: root@host.domain.jp
となっている所を、
From: root@domain.jp
にしたいです。
設定方法を教えてください。

質問者からの補足コメント

  • うーん・・・

    強制締め切りになったら自分で調べようと思いましたが、ひとまず放置してました^^;
    1/2番目はやはり記載通りUbuntuではできないようです。
    当方Fedoraから乗り換えたのですが、いろいろ勝手が違うのですね・・・。
    * * * * * /home/webmaster/try 2>&1 | mail -s "crontest" to@docomo.ne.jp -- -r "webmaster@domain.jp" -F"Webmaster"
    としても届いたメールは、From: webmaster@host.domain.jpのようにホスト名付きになってしまうようです。
    そしてTo:は指定した宛先以外に、-r@host.domain.jp、webmaster@domain.jp、-FWebmaster@hos

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/06/27 14:56

A 回答 (2件)

No1です。


私も興味があったのでmailコマンドやsmtpサーバなど、少し確認してみました。私の場合mailコマンドはs-nailコマンドになります。これを利用して外部のsmtpサーバを経由してインターネットの向こうに居る誰かにメールを送信することを想定しました(パソコン上のメイラーソフトを利用してメールを発信するのと同じです。)。
外部メールサーバですのでメールを送信する際にはサーバへのログインが必要になります。メールコマンドにより細かな設定は異なるのでしょうが、処理の内容は同じになるはずです。

私の環境ではsmtpサーバに関する設定は次の様になりました。

set mta=smtp://MyAccount@Domain:Password@smtpServer:587 \
 smtp-auth=login \
 from=MyAccount@Domain

一方のメール送信を実行するコマンドはcronスクリプト内で実行することを想定し...

echo "aaa" | s-nail -E -v Someone@SomeonesDomain

としました。

●...この設定だとスクリプトが正常に終了して何も出力しない場合でもsendmailを呼び出してしまうため、ちょっと使えないですね...

このご指摘について実行コマンドの"-E"オプションが効きました。例えば...

$ ls -l /tmp/tmp
-rw-r--r-- 1 Owner Group 0 6月 28 10:12 /tmp/tmp

容量 "0" のファイルに対し...

$ cat /tmp/tmp | s-nail -E -v Someone@SomeonesDomain

を実行するとメールの発信は抑制されます。s-nail以外のmailコマンドにも同様のオプションがあるようです。

●メールアドレスにホスト名が入らないようにできますか...
上のsmtpサーバ設定項目を参照いただくと、サーバログインのためのアカウントと、from設定によるメール送信元のアカウントが同じ設定になっています。
例えばfrom設定を...

   from=Domain

等とすると...

s-nail: SMTP server: Sender address rejected: not owned by user MyAccount@Domain

と怒られます。つまり『成りすましはダメよ。』と言っているのだと思われます。smtpサーバが発したエラーですので、サーバによっては可能かも知れません。

以上の結果から「...ホスト名が入らないよう...」のご希望は中々難しいのではないかと思われます。
    • good
    • 0
この回答へのお礼

調査ありがとうございます。
crontabの設定を工夫すれば実現は可能、
sendmailの設定では難しいという事が分かりました。
あとはbindの設定が何かカギを握っている気がしてきました。

ホスト名を除きたい理由は、普段見るメアドは、たいていホスト名が付されておらず、これを真似したいと思ったのです。
@以降が短い方がシンプルで覚えてもらいやすいという理由もあります。
しかし、そこまで大きな問題ではないため、気長に調査してまいります。
そういうわけで全然急いでないですが、もし先生も何か分かったら教えてください^^;

お礼日時:2022/06/28 12:30

既にご質問者様ご自身でお調べになっているかも知れませんが...



https://www.steponboard.net/linux/330/
https://qiita.com/amedama/items/10810ba004e546ab …
https://www.web-dev-qa-db-ja.com/ja/linux/cron%E …

1/2番めはcrontabsファイルの中でMAILFROM環境変数の設定により送信元変更を実現しようとするやり方ですが、2番目では「Ubuntuではできない。」と言っています。但しトライしてみる価値はあるように思われます。

3番目はcronがその都度実行するシェルコマンドの中で"mail"コマンドにより自らメールを発信するアイディアと理解しました。プラットフォームに依らず実現できそうに思われますが、結構トライアンドエラーを必要とするように思われました。
この回答への補足あり
    • good
    • 0
この回答へのお礼

t.domain.jpの計4アドレスになっていました。
mailコマンドのごく断片的な知識しかないため、良く分かりませんが、どうもcrontabで設定した オプション等が全てユーザー名と認識され@以降を自動補完している感じです。
実はこの時、cronからもメールが送られてきます。
出力は全てmailコマンドに渡しているため解せませんでしたが、どうもmailコマンドが吐いたメッセージをcronが送ってきていたのでした。
内容は、
mail: cannot send message: Process exited with a non-zero status
というもので、検索すると、どうもubuntuはsendmailがデフォルトでない旨の記載を見つけました。
またまた環境の相違によるエラーのようです。
/etc/mailnameというのは見当たらないためスルーしました。
NULLMAILER_USER=webmaster
NULLMAILER_HOST=domain.jp
NULLMAILER_NAME="Mr Cron"
の設定は機能していないようです。
またここでは送信者アドレスは-fで指定するとあるため、最初の-rとなっている所を-fに変更してみましたが、to:の-r@host.domain.jpが-f@host.domain.jpに変わっただけでした。
~/.mailrcを作成してみましたが機能しないようです。
Exim、muttは良く分からないためスルーしました。
応用としてmailコマンドの代わりに次のようにsendmailコマンドで試してみました。
* * * * * /home/webmaster/try 2>&1 | sendmail -f webmaster@domain.jp to@docomo.ne.jp
これでFrom: は意図した通りになるのですが、To:と件名を設定するにはもっと複雑なコマンドになると思われます。
と、ここまで書いて気付いたのですが、この設定だとスクリプトが正常に終了して何も出力しない場合でもsendmailを呼び出してしまうため、ちょっと使えないですね。
私としてはcrontabの設定ではなく、sendmailやbindの設定をちょこっと変更するだけで簡単にできると考えていたのですが、そのような設定は無いのでしょうか。

お礼日時:2022/06/27 14:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報