我有一台机器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