Postfixを使用してGoogleアカウント経由でメールをリレーする方法


9

ローカル以外のメールを個人のGoogleアカウント経由で中継し、ローカルをローカルユーザーに配信したい。私の設定は:/ etc / postfix / transport

*            smtp:[smtp.gmail.com]:587

および/etc/postfix/main.cf

[root@media postfix]# cat main.cf
# This file contains only the parameters changed from a default install
# see /etc/postfix/main.cf.dist for a commented, fuller version of this file.
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes

/ etc / postfix / sasl_passwd:

[smtp.google.com]:587    myuser@gmail.com:mypass

そして私が走った後:

# postmap transport && postmap sasl_passwd
systemctl restart postfix.service

だから今私のサーバーはGmail MXに接続しようとします(成功せずにローカルメールを配信しません)

journalctlからのログ:

    Jul 06 18:38:01 media postfix/pickup[31431]: 30714960F8: uid=0 from=<root>
    Jul 06 18:38:01 media postfix/cleanup[31641]: 30714960F8: message- id=<20130706163801.30714960F8@media.localdomain>
    Jul 06 18:38:01 media postfix/qmgr[31432]: 30714960F8: from=<root@media.localdomain>, size=436, nrcpt=1 (queue active)
    Jul 06 18:38:01 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6c]:587: Network is unreachable
   Jul 06 18:38:01 media postfix/smtp[31643]: 30714960F8: to=<mackowiakp23@gmail.com>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.7, delays=0.03/0.04/0.55/0.07, ...M command))
    Jul 06 18:38:02 media postfix/cleanup[31641]: 0B85D960F9: message-id=<20130706163802.0B85D960F9@media.localdomain>
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: from=<>, size=2555, nrcpt=1 (queue active)
    Jul 06 18:38:02 media postfix/bounce[31646]: 30714960F8: sender non-delivery notification: 0B85D960F9
    Jul 06 18:38:02 media postfix/qmgr[31432]: 30714960F8: removed
    Jul 06 18:38:02 media postfix/smtp[31643]: connect to smtp.gmail.com[2a00:1450:4008:c01::6d]:587: Network is unreachable
    Jul 06 18:38:02 media postfix/smtp[31643]: 0B85D960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.59, delays=0.02/0.01/0.51/0.06,...M command))
    Jul 06 18:38:02 media postfix/qmgr[31432]: 0B85D960F9: removed
    Jul 06 18:38:40 media auth[31778]: pam_tcb(dovecot:auth): Authentication passed for media from (uid=0)
    Jul 06 18:38:40 media dovecot[1442]: pop3-login: Login: user=<media>, method=PLAIN, rip=192.168.0.2, lip=192.168.0.7, mpid=31779, secured, session=<VZaXcdrgpADAqAAC>
    Jul 06 18:38:40 media dovecot[1442]: pop3(media): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0
    Jul 06 18:38:58 media postfix/pickup[31431]: CD15D960F8: uid=0 from=<root>
    Jul 06 18:38:58 media postfix/cleanup[31641]: CD15D960F8: message-id=<20130706163858.CD15D960F8@media.localdomain>
    Jul 06 18:38:58 media postfix/qmgr[31432]: CD15D960F8: from=<root@media.localdomain>, size=430, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/smtp[31643]: CD15D960F8: to=<mackowiakp@op.pl>, relay=smtp.gmail.com[173.194.69.108]:587, delay=0.63, delays=0.02/0/0.54/0.06, dsn=5.5....M command))
    Jul 06 18:38:59 media postfix/cleanup[31641]: BAB0E960F9: message-id=<20130706163859.BAB0E960F9@media.localdomain>
    Jul 06 18:38:59 media postfix/qmgr[31432]: BAB0E960F9: from=<>, size=2541, nrcpt=1 (queue active)
    Jul 06 18:38:59 media postfix/bounce[31646]: CD15D960F8: sender non-delivery notification: BAB0E960F9
    Jul 06 18:38:59 media postfix/qmgr[31432]: CD15D960F8: removed
Jul 06 18:39:00 media postfix/smtp[31643]: BAB0E960F9: to=<root@media.localdomain>, relay=smtp.gmail.com[173.194.69.109]:587, delay=0.66, delays=0.02/0.01/0.56/0.07,...M command))
    Jul 06 18:39:00 media postfix/qmgr[31432]: BAB0E960F9: removed

それを機能させるための助けはありますか?


そのアスタリスクは実際に/ etc / postfix / transportにありますか、それとも単に誤って質問に追加されたものですか?
CVn 2013

回答:


5

TLSグーグルがそれを必要とするので、あなたはPostfixのSMTPクライアントで有効にする必要があります。これは、メッセージに示されていますMust issue a STARTTLS command

では/etc/postfix/main.cf、次のようなものが必要です。

smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

そして次に/etc/postfix/tls_policy

[smtp.gmail.com]:587 encrypt

の左側tls_policyは、のrelayhostエントリとまったく同じに表示される必要がありますmain.cf

必要に応じて作成または変更postmapした/etc/postfix/tls_policy後、必ず実行してください。

詳細については、PostfixのTLSドキュメントをご覧ください。

これらのリンクを参照してください

http://blog.bigdinosaur.org/postfix-gmail-and-you/

http://www.postfix.org/TLS_README.html#client_tls


2

これは私がこれに使用する手順です:

sudo apt-get install postfix.

インストールされているメールサーバーの種類を尋ねる場合は、設定なしを選択します(最初のオプション)

sudo nano /etc/postfix/main.cf

これを貼り付けます

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
# listen on localhost only
inet_interfaces = 127.0.0.1

smtpd_banner = $myhostname ESMTP $mail_name

biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

#Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

ファイルを保存します。次に、ユーザー名とパスワードを使用してファイルを作成します。

sudo nano /etc/postfix/sasl_passwd

必要な置き換えを行って、以下に貼り付けます

[smtp.gmail.com]:587    user.name@gmail.com:password

それを保存し、コマンドプロンプトで

sudo postmap /etc/postfix/sasl_passwd

その後

chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

最終的に、

sudo service postfix restart

電子メールシステムのテストに成功したら、sasl_passwdのパスワードを削除または難読化できることに注意してください。

アプリケーションでテストしてください。問題がある場合は、/ var / log / mail.logを確認してください。apt-getinstall mail-utilsを実行して、メールプログラムをインストールできます。あなたはそれからテストすることができます

echo “this is a test” | mailx -s “This is the subject” destination@example.com

最終的に

走る

newaliases

/etc/aliases.dbファイルを作成します。そうしないと、多くのエラーが/var/log/mail.errに記録されますSASLエラー(postfix)が発生した場合ホスト名が/ etc / hostsと/ etc / hostnameにあることを確認します特定のホスト/ IPアドレス(postfix)をリレーできること/etc/postfix/main.cfにこれを追加します

mynetworks = 10.0.0.0/8

これにより、10.0.0.0アドレスを持つすべてのユーザーが接続できるようになります。明らかに、ネットワークを制限するか、使用可能なファイアウォールまたはセキュリティポリシーを使用して、これを可能な限り削減する必要があります。


OK。THX。しかし、/ etc / ssl / certs / Equifax_Secure_CA.pem証明書を作成/取得するために何を使用していますか?
mackowiakp 2013

私の間違い、あなたはその行を必要とすべきではありません。これを反映するために上記の投稿を編集しました
GeoSword 2013

情報を入手しました:<test.user@domain.com>:host smtp.gmail.com [173.194.69.109]のコメント:530-5.5.1認証が必要です。詳細については、530をご覧 ください。5.5.1 support.google.com/mail/bin/answer.py?answer=14257 fc7sm2465531bkc.3-gsmtp(MAIL FROMコマンドへの返信)-このような構成では、リレー定義にMAIL FROMを含める必要があります。どうすればできますか?
mackowiakp 2013

ああs *&^ * t!/ etc / postfix / sasl_passwdには、[smtp.gmail.com]:587の代わりに[smtp.google.com]:587がありました。そのような単純なエラーを見つけることは時々ひどく困難です。THX!動く!
mackowiakp 2013

1

まず、最初にGoogleの認証方法を確認してください。

https://www.google.com/settings/security/lesssecureapps

アカウントでページを使用できない場合、ドメイン管理者はすべてのユーザーに対してこの設定を無効にしました(デフォルト)。

Google管理者のリレーSMTPでIP /範囲をホワイトリストに登録すると、この設定でメールを送信できます

relayhost = [smtp-relay.gmail.com]:587
smtp_use_tls = yes
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = login, plain
smtp_tls_CApath = /etc/ssl/certs
smtp_sasl_tls_security_options = noanonymous

しかし、Allow less secure apps: OFF私がいつもこれらのメッセージを受け取っていたとき:

(SASL authentication failed; server smtp-relay.gmail.com[173.194.204.28] said: 534-5.7.14
... Please log in via your web browser and?534-5.7.14 then try again.?534-5.7.14
Learn more at?534 5.7.14  https://support.google.com/mail/answer/78754 g133sm1077601qkb.1 - gsmtp)

しかし、メッセージは配信されました(これは少し奇妙です)が、受信者へのメッセージの取得には少し時間がかかりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.