如何配置postfix发送邮件到外部SMTP服务器?

如何配置postfix发送邮件到外部SMTP服务器?

我有一台机器http://phabricator.org/在其上进行设置,我想设置 postfix 以启用电子邮件发送到我公司的邮箱(对于来自例如的通知电子邮件[email protected])。

假设 SMTP 服务器是smtp.company.net

我需要做什么才能允许postfix在没有帐户的情况下向该服务器发送电子邮件?和relayhost里面的配置有关系吗/etc/postfix/main.cf

我在该网络中的另一台机器上设置了 Jenkins,我唯一需要设置的是 SMTP 的主机名(此处smtp.company.net)和用于发送电子邮件的管理员电子邮件(但没有该电子邮件的帐户)在 STMP 服务器上)。

我已经设置了 Jenkins 和 phabricator LDAP 身份验证,但由于某种神奇的原因 Jenkins 可以工作,我在以下位置收到此错误/var/log/maillog

Oct  6 16:36:22 hostname_machine postfix/smtp[15077]: fatal: open database /etc/postfix/sasl_passwd.db: No such file or directory
Oct  6 16:36:23 hostname_machine postfix/master[14965]: warning: process /usr/libexec/postfix/smtp pid 15077 exit status 1
Oct  6 16:36:23 hostname_machine postfix/master[14965]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling

我可以sasl_passwd.db用以下方法创建这个

postmap /etc/postfix/sasl_passwd

但这不是重点,因为我有 LDAP 身份验证,并且没有这个“通知电子邮件发件人”的帐户,并且......它在 Jenkins 上神奇地工作。

笔记 将我的个人帐户凭据手动添加到sasl_passwd

echo "smtp.company.net myusername:mypassword" > /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
service postfix restart

我得到这个postmap /etc/postfix/sasl_passwd

Oct  6 16:42:28 hostname_machine postfix/pickup[15611]: 9237FE4E6E: uid=0 from=<root>
Oct  6 16:42:28 hostname_machine postfix/trivial-rewrite[15650]: warning: database /etc/postfix/virtual.db is older than source file /etc/postfix/virtual
Oct  6 16:42:28 hostname_machine postfix/cleanup[15648]: 9237FE4E6E: message-id=<[email protected]>
Oct  6 16:42:28 hostname_machine postfix/qmgr[15612]: 9237FE4E6E: from=<[email protected]>, size=545, nrcpt=1 (queue active)
Oct  6 16:42:29 hostname_machine postfix/smtp[15614]: 9237FE4E6E: to=<[email protected]>, relay=smtp.company.net[10.115.11.11]:25, delay=0.51, delays=0.16/0/0.17/0.18, dsn=2.0.0, status=sent (250 2.0.0 s96DgSY3016471 Message accepted for delivery)
Oct  6 16:42:29 hostname_machine postfix/qmgr[15612]: 9237FE4E6E: removed

相关内容