私はスクリプトから電子メールを送信するためにmailxを使用しています。このスクリプトは、.service および .timer ファイルを使用して systemd によって毎日実行されます。テスト目的でコマンドラインから送信します。
メールはコマンドで送信されます。
echo "Test message - you know the drill" | mailx -r "[email protected]" -s "Test Message" [email protected]
(個人情報保護のため個人情報は置き換えられました)
これはうまくいきます。これは、送信メッセージに署名する私のゲートウェイサーバー(postfix)としてpostfixを介して渡されます。その後、電子メールはGMailに転送され、GMailはSPFデータとDKIM署名を確認し、自分の受信トレイに電子メールを転送します。
次のように表示されることを除けば大丈夫です。Ubuntu <[email protected]>
同じ方法でメールを送信する他のサーバーがあり、すべて同じように表示されます。
各サーバーの表示名をもう少し便利な名前に変更したいと思います。たとえば、私がやっていることは、アドレスがゲートウェイサーバーに送信されたときにアドレスを操作することです。Web Server <[email protected]>
From
頑張った
echo "Test message - you know the drill" | mailx -r "Web Server [email protected]" -s "Test Message" [email protected]
そして
echo "Test message - you know the drill" | mailx -r "Web Server <[email protected]>" -s "Test Message" [email protected]
ただし、どちらの場合も、ローカルPostFixは送信者アドレスを失い、ゲートウェイサーバーに送信されたメッセージのアドレスはゲートウェイサーバーのFQDNfrom
として指定されます。電子メールはGMailに送信されましたが、SPFとDKIMのテストに失敗し、無意識のうちにスパムボックスに捨てられました。 (ローカルpostfixがゲートウェイサーバーの名前をどのように取得するのかわかりません)[email protected]
smtp.private.example.uk
それでは、サーバーからサーバーへの移動後も維持され、GMailで正しく表示されるようにmailxに渡されたパラメータに表示名をどのように追加しますか?
Mailx バージョン 3.14 (GNU Mailutils) Ubuntu 22.04
PostFixで1つだけ変更しましたmain.cf
。ゲートウェイサーバーのリレーホストアドレスを追加しました。
答え1
プリインストールされたプログラムを使用してpostfixをインストールしたいので、postfixモードを使用して転送内容と外観をより適切に制御できます。
sendmail -t
このモードでは、postfixをMail Submission Agent(MSA)として使用します。とにかくmailx
ヘッダーと本文全体を指定でき、postfixはそれを「現状のまま」送信します。
簡単な方法はを使用することですecho
。
例えば
echo "From: My name <me@myaddress>
To: You <you@youraddress>
Subject: You'll never guess what...
This is a test!" | /usr/sbin/sendmail -t
これにより、ヘッダーを希望の値に設定できます。
それは今も変わっていません。封筒送信元であるため、元の名前が別の行に表示されるため、完璧ではありませんが(mailx
送信者アドレスがアカウントアドレスと一致しない場合はわかります)、複雑さを回避したり、追加のmailx
メールユーザーエージェント(MUA)が発生したりする可能性があります。持ち込まれる。