ドメインexample.comを次のように設定しています
サーバーが私にメールを送信する必要があるときはいつでも、Postfixを使用してGoogleのSMTPサーバーを介してメールを送信します。
これは完全に正常に機能しますが、サーバーは[email protected]
として電子メールを送信します。 Google Appsでエイリアスを設定して、[email protected]
が[email protected]
としてメールを送受信できるようにしました。 GoogleのSMTPサーバーに[email protected]
としてログインしているときに、postfixで[email protected]
としてメールを送信したい。簡単な解決策は、サーバー用に別のアプリアカウントを開くことですが、小さな趣味のプロジェクトでは、月にさらに5ドルかかります。
したがって、それを機能させるには2つのことを行う必要があることがわかりました。
まず、Google Apps管理パネルでメールアドレスのエイリアスを作成するだけでは不十分です。Alexの回答に従って、設定ページの[メールを送信]パネルにアドレスを追加することも重要です。そうしないと、Gmailは古いアドレスから追加のヘッダーに移動し、使用が許可されているヘッダーと一緒に送信します。
次に、Postfixはsmtp_generic_maps
を使用するように設定する必要があります。これにより、/etc/postfix/main.cf
で指定されたファイルに従って、内部アドレスが外部アドレスに自動的にマップされます。サーバーでメールを受信する場合は、canonical_maps
も使用する必要があります。
私が使用した設定は、postfixがすべてのユーザーからすべてのメールを[email protected]
として送信するように強制することを目的としていました
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/ etc/postfix/generic:
[email protected] [email protected]
[email protected] [email protected]
@example.com [email protected]
@server-hostname [email protected]
@server-hostname.example.com [email protected]
ドキュメント http://www.postfix.org/ADDRESS_REWRITING_README.html#generic
しかし、それは箱から出してうまくいきます(1つの小さな例外を除いて、以下を参照してください)。 [email protected]これはメインの電子メールアカウント[email protected]のエイリアスです。
# echo "Hello world" | swaks -4 --server smtp.gmail.com:587 --from [email protected] \
--to [email protected] -tls --auth PLAIN --auth-user [email protected] \
--auth-password 1234567 --h-Subject TEST --h-From: '"Do not reply" <[email protected]>' --body -
=== Trying smtp.gmail.com:587...
=== Connected to smtp.gmail.com.
<- 220 smtp.gmail.com ESMTP un6sm65521lbb.18 - gsmtp
-> EHLO svn.example.net
<- 250-smtp.gmail.com at your service, [77.122.73.151]
<- 250-SIZE 35882577
<- 250-8BITMIME
<- 250-STARTTLS
<- 250-ENHANCEDSTATUSCODES
<- 250-PIPELINING
<- 250-CHUNKING
<- 250 SMTPUTF8
-> STARTTLS
<- 220 2.0.0 Ready to start TLS
=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128
=== TLS no local certificate set
=== TLS peer DN="/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com"
~> EHLO svn.example.net
<~ 250-smtp.gmail.com at your service, [77.122.73.151]
<~ 250-SIZE 35882577
<~ 250-8BITMIME
<~ 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
<~ 250-ENHANCEDSTATUSCODES
<~ 250-PIPELINING
<~ 250-CHUNKING
<~ 250 SMTPUTF8
~> AUTH PLAIN VhAEBMZXHN7cyxhAGFG0ub9JnLnZaGhfsuaGhhQhhLTEiNTU8Ng==
<~ 235 2.7.0 Accepted
~> MAIL FROM:<[email protected]>
<~ 250 2.1.0 OK un6sm65521lbb.18 - gsmtp
~> RCPT TO:<[email protected]>
<~ 250 2.1.5 OK un6sm65521lbb.18 - gsmtp
~> DATA
<~ 354 Go ahead un6sm65521lbb.18 - gsmtp
~> Date: Wed, 09 Mar 2016 21:15:09 +0000
~> To: [email protected]
~> From: "Do not reply" <[email protected]>
~> Subject: TEST
~> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
~>
~> Hello world
~>
~>
~> .
<~ 250 2.0.0 OK 1457558110 un6sm65521lbb.18 - gsmtp
~> QUIT
<~ 221 2.0.0 closing connection un6sm65521lbb.18 - gsmtp
=== Connection closed with remote Host.
例外。
ヘッダーには、元の送信者ユーザー(送信者:Alex Domoradov)が表示されます。
Return-Path: <[email protected]>
Received: from svn.example.net ([77.122.73.151])
by smtp.gmail.com with ESMTPSA id un6sm65521lbb.18.2016.03.09.13.15.10
for <[email protected]>
(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Wed, 09 Mar 2016 13:15:10 -0800 (PST)
Message-ID: <[email protected]>
Sender: Alex Domoradov <[email protected]>
Date: Wed, 09 Mar 2016 21:15:09 +0000
To: [email protected]
From: "Do not reply" <[email protected]>
Subject: TEST
X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
Hello world
P.S.アカウント設定ページでエイリアスを追加する必要があります