![寻找编译 postfix 的正确方法](https://linux22.com/image/654540/%E5%AF%BB%E6%89%BE%E7%BC%96%E8%AF%91%20postfix%20%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95.png)
我在从源代码编译最新版本的 postfix 时遇到问题。目前,我正在尝试编译版本 3,因为 Debian 7 和最新的 Ubuntu 14,10(postfix 的版本 2,9 和 2,11)在使用 Maildir 协议配置虚拟邮箱时存在错误。我原本想制作 mysql 表来存储本地别名和虚拟邮箱,但我想提供引入 SASL 的 SMTP 身份验证访问,并使用 dovecot 作为 IMAP 服务器。CCARGS 和 AUXLIBS 有什么区别?
我下载了 cyrus-sasl 包来进行构建和安装,并使用以下参数指向 makefile:包含 sasl 源的文件夹在make CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/tmp/cyrus-sasl/include' AUXLIBS='-lsasl2'
哪里。include
这样,我就得到了错误报告这里。根据 Mohsen 的建议,我附加了
-ldb -lnsl -lresolv
但AUXLIBS
它引发了另一个错误,我还没有找到任何解决方案来从这一点继续。
错误如下:
gcc -I. -I../../include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/tmp/cyrus-sasl/include -DHAS_PCRE -UUSE_DYNAMIC_LIBS -DDEF_SHLIB_DIR=\"no\" -UUSE_DYNAMIC_MAPS -Wmissing-prototypes -Wformat -Wno-comment -g -O -I. -I../../include -DLINUX3 -c smtpd.c
smtpd.c: In function ‘xclient_cmd’:
smtpd.c:4028:11: error: ‘SMTPD_STATE’ has no member named ‘tls_context’
if (state->tls_context == 0) /* TLS from XCLIENT proxy? */
我遗漏了什么或者做错了什么?
答案1
使用 Maildir 协议配置虚拟邮箱存在问题
我正在使用 Dovecot LMTP 传送到 Maildir 箱,没有遇到任何问题。
我想提供 SMTP 身份验证访问,引入 SASL,并使用 dovecot 作为 IMAP 服务器
更简单的方法是通过 Dovecot 对 SMTP 用户进行身份验证,因此您不需要在两者中配置 SASL 身份验证。
添加
service auth {
unix_listener auth-userdb {
mode = 0666
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0660
user = postfix
group = postfix
}
}
你的/etc/dovecot/conf.d/10-master.conf
然后
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
你/etc/postfix/main.cf
就完成了。