ポート587を介してGmail(smtp.gmail.com)を送信/リレーするようにPostfixを構成する


9

Centos 5.4とPostfixを使用します。私はできる

mail foo@gmail.com 
subject: blah
 test
.
Cc:

メッセージはgmailに送信されますが、これは予想されるスパムフォルダーに存在します。

私の目標は、電子メールメッセージを生成し、それらを通常の受信トレイに表示することです。Postfix / Gmailを理解しているので、ポート587を使用して、認証済み/有効なユーザーを経由してメールを送信/リレーするようにPostfixを設定できます。これにより、メールはスパムとして表示されなくなります。

私は「ネット」からのさまざまなサイト/記事に基づいていくつかのパラメーターを試しましたが、うまくいきませんでした。一部の記事は、実際には他の記事と競合しているようです。私はこれに関するstacflowの投稿も調べましたが、まだ何かが足りません...また、IRC(Centos / Postfix)で何人かと話し、まだ質問があります。

それで、私は再びServerfaultに目を向けます!

これを成し遂げた人がいる場合、main.cf、sasl-passwd、およびこれを機能させるために使用するその他のconfファイルを投稿していただけませんか。設定ファイルを確認できれば、うまくいけば、どこで失敗したかがわかり、問題を修正する方法がわかります。

これを読んでくれてありがとう、そしてあなたが提供したヘルプ/ポインタ!

PS、私が見逃したかもしれない、これについて話すスタックフロー投稿がある場合は、遠慮なく私に指摘してください!

-tom

回答:


16

私は送信ポート(587)を使用してプロバイダーを介して中継しようとしなかったが、それは可能であるはずです。Postfixがリレーできるようにするには、認証情報を使用してファイルを設定し、使用するように構成/etc/postfix/main.cfファイルを変更する必要があります。

1つは認証資格情報です。これに/etc/postfix/sasl_passwdは、テンプレートを使用して適切な行を追加するだけです。

smtp.provider.com    smtp_user:smtp_passwd

このファイルが保護されていることを確認する必要があるため、root:root所有権と0600アクセス許可を設定することをお勧めします。次に、次のコマンドを実行して、ハッシュマップバージョンをルートとして作成します。

postmap hash:/etc/postfix/sasl_passwd

これが邪魔にならないように注意を向ける/etc/postfix/main.cfと、すでに設定されている値の一部が見つかる可能性があるため、それに応じて値を変更する必要がありますが、重要な詳細は次のとおりです。

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_security_level = may

これらにより、Postfixがsasl_passwdファイルを使用してメールを送信するときに認証できるようになります。次に、設定を追加して、メールを送信するためにプロバイダーを使用するようPostfixに指示する必要があります

relayhost = smtp.provider.com:port

指定しない場合、デフォルトではPostfixはポート25を想定しており、これは過去に私にとってはうまくいきました。要求された設定では、ポートとして587を指定する必要があります。それをあなたがするsasl_passwdエントリを変更する必要があります場合、私はわからないと述べたsmtp.provider.com:587だけではなく、smtp.provider.com私はあなたが自分自身でそれをしようとする必要がありますので、前にデフォルト以外のポート上でこれをやって試していないてきたように。

これらの構成手順だけで、中央のメールサーバーを介して管理しているいくつかのサーバーでメール転送を処理しています。

完全に機能する例を含むように更新

私のDSLプロバイダーがアウトバウンドポート25トラフィックをブロックしているので、私は自分のUbuntu(Debianベース)ラップトップを私のメールプロバイダー(Gmailではない)でポート587を使用するように構成したことがわかりました。代わりに、自分のGmailアカウントの1つを使用してメールを送信するように更新しました。私がする必要がある唯一の変更

私はプライベートデータを覆い隠していますが、それ以外の場合 Postfixの現状の構成を貼り付けます。

最初に/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

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
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

readme_directory = no

# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_security_level = may

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = solitare, localhost.localdomain, , localhost
relayhost = smtp.gmail.com:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

次にあります/etc/postfix/sasl_passwd

smtp.gmail.com:587  myusername@gmail.com:mypassword

次に、次のSMTPセッションを実行しました。

jbouse@solitare:~$ telnet localhost 25
Trying 127.0.0.1...
Connected to solitare.
Escape character is '^]'.
220 example.com ESMTP Postfix (Ubuntu)
helo localhost
250 example.com
mail from: jbouse@example.com
250 2.1.0 Ok
rcpt to: myotherusername@gmail.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
To: myotherusername@gmail.com
From: jbouse@example.com
Subject: Testing Postfix smarthost via Gmail
this is just a test
.
250 2.0.0 Ok: queued as 6269B280191
quit
221 2.0.0 Bye
Connection closed by foreign host.

次に、myotherusernameGmailアカウントにログインしてメッセージを読みます。

Return-Path: <myotherusername@gmail.com>
Received: from example.com (mydslproviderhostname.net [x.x.x.229])
        by mx.google.com with ESMTPS id 6sm401663ywd.11.2010.03.04.19.19.58
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Thu, 04 Mar 2010 19:19:58 -0800 (PST)
Sender: "Jeremy Bouse" <myotherusername@gmail.com>
Received: from localhost (solitare [127.0.0.1])
    by example.com (Postfix) with SMTP id 6269B280191
    for <myotherusername@gmail.com>; Thu,  4 Mar 2010 22:17:39 -0500 (EST)
To: myotherusername@gmail.com
From: jbouse@example.com
Subject: Testing Postfix smarthost via Gmail
Message-Id: <20100305031745.6269B280191@example.com>
Date: Thu,  4 Mar 2010 22:17:39 -0500 (EST)

this is just a test

システム管理者としての13年間を無駄にしていないことを示した今、ラップトップからGmailを介してメールを送信していますが、他の人が言うように自己署名x.509証明書を生成する必要はありません。の主要な追加/etc/postfix/main.cfは、smtp_tls_security_level設定で、TLSをサポートしている場合、別のMTAに接続するときにSTARTTLSコマンドを発行してもよいことをPostfixに通知する場合があります。smtp_tls_security_level設定を忘れた場合、次の行に沿ってエントリが表示されることがあります。/var/log/mail.log

Mar  4 22:10:58 solitare postfix/smtp[19873]: 20E07280191: to=<myotherusername@gmail.com>, relay=smtp.gmail.com[74.125.47.109]:587, delay=38, delays=38/0.03/0.08/0.01, dsn=5.7.0, status=bounced (host smtp.gmail.com[74.125.47.109] said: 530 5.7.0 Must issue a STARTTLS command first. 20sm399188ywh.48 (in reply to MAIL FROM command))

ただし、適切に設定すると、次のように表示されます。

Mar  4 22:20:00 solitare postfix/smtp[20313]: 6269B280191: to=<myotherusername@gmail.com>, relay=smtp.gmail.com[74.125.47.109]:587, delay=141, delays=110/29/0.36/1.9, dsn=2.0.0, status=sent (250 2.0.0 OK 1267759200 6sm401663ywd.11)

こんにちはジェレミー...返信ありがとうございます。いくつかの質問。私はsmtpd _... paramsを持っているネット投稿を見ました。私はそれらを必要としないと思います。また、いくつかの記事は、TSL証明書を持っている/参照しています。それらをまったく扱う必要がありますか?ありがとう!!
トム・スミス

smtpd _... paramsはPostfix for a server ...です。スマートホストにリレーする場合、Postfixはsmtp _... paramsを使用するクライアントとして動作しています。
Jeremy Bouse

1
グレイビーフェイス、あなたは明らかに何を話しているのか分からない。主題に関する知識が不足しているので、SMTP&TLS / SSL / x.509について少し読んでおくことをお勧めします。
Jeremy Bouse、2010年

1
felipe-alfaro.org/blog/2009/05/10/… ... 2番目の段落に自分のコメントが反映されます...
Jeremy Bouse

1
それを片付けてくれてありがとう、ジェレミー。あなたは自分の証明書に署名しなければならないのは少し奇妙だといつも思っていましたが、私の急いで(そして私が見た多くの記事/チュートリアルで)彼らはそうするように言った。生活し、学びます。
gravyface 2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.