如何配置 postfix 以使用多个 google 应用程序用户帐户?

joh*_*kas 5 postfix gmail users

我安装了 postfix 并设置了通过 google 应用程序进行中继,但是当我将邮件发送到 postfix 时,它会使用我在 main.cf 中指定的 ONE 帐户将其中继到 google 应用程序。

有没有办法更动态地做到这一点。理想情况下,用户在发送邮件时使用 postfix 进行身份验证,而 postfix 将使用该用户名和密码对 gmail 进行身份验证。这是可能的,或者下一个最佳解决方案是什么?

提前致谢

joh*_*kas 2

最后,您基本上必须同步两个密码文件,或者使用更多类型可能会使用一个 mysql 表通过 postfix 对客户端进行身份验证,然后让 postfix 查询同一个表以通过 gmail 进行身份验证。另一个想法可能是找到一个针对 gmail 进行身份验证的 PAM 模块。

无论如何,我使用了这个指南

http://braiden.org/?p=15

设置每个用户帐户中继:

#

smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
Run Code Online (Sandbox Code Playgroud)

并用一行创建 /etc/postfix/sasl_passwd (将用户和密码替换为您自己的)

smtp.gmail.com some.user@gmail.com:PASSWORD
Run Code Online (Sandbox Code Playgroud)

然后我在 postfix 上设置 sasldb auth,以便客户端必须对 postfix 进行身份验证。Postfix 查询 sasldb2 文件。

缺点是,如果您更改 gmail 密码并希望保持所有内容同步,则必须更新 /etc/postfix/sasl_passwd 并更新 /etc/sasl2db.conf 文件。

这是我的 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
myorigin = /etc/mailname
mydestination = 
relayhost = [smtp.gmail.com]:submission
mynetworks = 127.0.0.0/8, 10.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map

smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
#smtpd_sasl_security_options = noanonymous, noplaintext

smtpd_recipient_restrictions =
   permit_sasl_authenticated,
   reject_unauth_destination

--------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这里有一些有用的链接:

> http://www.postfix.org/SASL_README.html
> http://www.postfix.org/postconf.5.html
> http://enc.com.au/myscripts/postfixmysql.html
> http://braiden.org/?p=15
> https://help.ubuntu.com/community/Postfix
> http://www.debianhelp.org/node/2120
> http://www.blogternals.com/2009/04/30/postfix-google-apps-gmail-smtp-relay/
Run Code Online (Sandbox Code Playgroud)