Web サイトがパスワード リセット メールを送信できるように Postfix をセットアップしようとしているときに、コマンド ラインからメールを送信するときに、
echo "body" | mail -s "subject" test@example.com
メールは問題なく届き、スパムとしてマークされていません。ただし、サイト サーバー内から送信する場合、ヘッダーは localhost から受信したものとして設定されるため、スパムとしてマークされます。
Received: from example.com (localhost [127.0.0.1])
by example.com (Postfix) with ESMTPS id CE1299C435
for <my_email@gmail.com>; Tue, 2 Aug 2016 05:28:41 +0000 (UTC)
注意として、dkim、spf、および dmarc はすべてのリストを合格としてテストするため、問題はありません。
また、上記の echo メソッドを使用して同じ内容の電子メールを送信しようとしましたが、正常に届きました (ただし、上記のように使用し、コンテンツ タイプ ヘッダーを追加しなかったためプレーンテキストでした)。
当初、これは smtp.SendMail を使用して送信されました
err := smtp.SendMail(hostname + ":25", nil, sender, recipients, []byte(msgstr))
これは送信ホストを設定する方法を提供しないため、これを修正しようとして、手動ダイヤルを使用して HELO メッセージを送信し、次に tls を開始することに切り替えました (HELO の前に tls を開始しようとすると、HELO が必要であるというパニックが発生しました)最初の電話)
c, err := smtp.Dial(host + ":25")
if err != nil {
log.Panic(err)
}
if err = c.Hello(host); err != nil {
log.Panic(err)
}
if err = c.StartTLS(config.TLS()); err != nil {
log.Panic(err)
}
これでも電子メールは正常に送信されますが、受信したヘッダーに発信元として localhost が表示される前と同じように、HELO が呼び出しの発信元を特定するのに役立つと信じていたため、何か誤解しているように感じます。
あなたのアドバイスと助けに感謝します。MTA を設定してこのように使用しようとしたのはこれが初めてです。明らかにまだ終わっていない学習曲線が少しありました。