寻找编译后缀的正确方法

blu*_*eam 2 mysql postfix saslauthd dovecot sasl

我在从源代码编译最新版本的 postfix 时遇到问题。目前我正在尝试编译版本 3,因为 Debian 7 和最新的 Ubuntu 14,10(用于 postfix 的版本 2,9 和 2,11)在使用 Maildir 协议配置虚拟邮箱时存在问题。我正在考虑制作 mysql 表来存储本地别名和虚拟邮箱,但我想提供 SMTP 身份验证访问,将 dovecot 作为 IMAP 服务器引入 SASL。CCARGS 和 AUXLIBS 有什么区别?

我下载了 cyrus-sasl 包来构建和安装,我用这些参数指向 makefile:sasl 源文件夹make CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/tmp/cyrus-sasl/include' AUXLIBS='-lsasl2' 在哪里include

这样,我在这里报告了错误。正如莫森建议的那样,我附加了

-ldb -lnsl -lresolv
Run Code Online (Sandbox Code Playgroud)

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? */
Run Code Online (Sandbox Code Playgroud)

我错过了什么或做错了什么?

Dop*_*ine 5

使用 Maildir 协议配置虚拟邮箱的错误

我正在使用 Dovecot LMTP 递送到 Maildir 邮箱并且没有任何问题。

我想提供引入 SASL 的 SMTP 身份验证访问,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
    }
}
Run Code Online (Sandbox Code Playgroud)

给你的 /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
Run Code Online (Sandbox Code Playgroud)

到你的/etc/postfix/main.cf,你就完成了。