寻找编译 postfix 的正确方法

寻找编译 postfix 的正确方法

我在从源代码编译最新版本的 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就完成了。

相关内容