带有 sendmail 设置的 Courier-imap:为什么我的 IMAP 收件箱是空的?

带有 sendmail 设置的 Courier-imap:为什么我的 IMAP 收件箱是空的?

我已经成功安装了 sendmail,但当我通过 Outlook 连接到 Courier IMAP 服务器时,收件箱显示为空。当我在服务器上使用 Alpine 本地检查收件箱时,收件箱中有内容。为什么?我确实在 /var/mail 中看到了有内容的文件。那不是 Courier-imap 检查邮件的地方吗?

设置非常干净 - 我在 AWS 上运行 Ubuntu 12.04,安装了 sendmail 和 courier-imap。sendmail 已配置sendmailconfigure,可以很好地发送和接收邮件。问题出在 courier 上。

答案1

实际上sendmail默认情况下邮件存储在~/mail(即当前用户的主目录 + mail)中,而未经修改的 Courier 正在查找~/MaildirPostfix 和 QMAIL 投递邮件的地方。

您必须修改 courierimapd文件/etc/courier/imapd才能使其正常工作。但即便如此,您的上游邮件程序也必须进行修改。(Squirrel Mail、Roundcube)。

答案2

我遇到了一些配置问题。当我按照本指南我一点一点地让它工作起来:

通过 Postfix、Courier、TLS 和 SASL 保护传出 SMTP

  • 好的。首先:apt-get
apt-get install postfix-tls libsasl2-2 sasl2-bin libsasl2-modules

用于配置的主要网站:http://www.falkotimme.com/howtos/perfect_setup_debian_sarge/index.php

辅助网站-但是使用不同的身份验证文件:http://www.tribulaciones.org/docs/postfix-sasl-tls-howto.html

更多有用的信息和克服 CHROOT 的简单方法 ->http://wiki.ev-15.com/debian:mail_system

下面的许多内容已经过时,在 Debian Squeeze 中不再需要:

  • 配置:

/etc/postfix/main.cf
/etc/postfix/sasl/smtpd.conf
/etc/postfix/ssl/* - tls 证书

1. 
# SASL Support
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
2.
# SASL Auth
vi /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
3.
# TLS Certs
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650


# TLS Config in /etc/postfix/main.cf
# Moving onto TLS on its own.
smtpd_tls_auth_only = yes
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
vi /etc/postfix/main.cf
//add in
smtpd_sasl_auth_enable = yes
//Then try and send emails via smtpd
  • 重启 Postfix

现在继续进入 Auth
因为 postfix 运行 chrooted - 需要移动 /var/run 目录

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -fr /var/run/saslauthd

编辑 /etc/default/saslauthd

Remove # in front of START=yes
Add the line PARAMSOPTIONS="-m /var/spool/postfix/var/run/saslauthd"

编辑 /etc/init.d/saslauthd

在 dir=`dpkg-statoverride --list $PWDIR` 中添加 #
在 PIDFILE 条目下方添加 dir="....
#dir=`dpkg-statoverride --list $PWDIR`
将 PWDIR 和 PIDFILE 更改为以下内容:
PWDIR="/var/spool/postfix/var/run/${NAME}"
PIDFILE="${PWDIR}/saslauthd.pid"
dir="root sasl 755 ${PWDIR}"
//改成:
createdir root sasl 755 $RUN_DIR
  • 保存并关闭
  • 重新启动 saslauthd
  • /etc/init.d/saslauthd 启动
  • 确保调整防火墙 - 在本地打开端口 111

调试和测试

user@otherserver:~$ telnet mail.burkesys.com 25
Trying 78.47.9.122...
Connected to mail.burkesys.com.
Escape character is '^]'.
220 mail.burkesys.com ESMTP Postfix (Debian/GNU)
ehlo localhost
250-mail.burkesys.com
250-PIPELINING
250-SIZE 20000000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

通过 telnet 连接后,输入“ehlo localhost”并查看“STARTTLS”行。这应该会出现。

当然,o2 已经开始过滤端口 25 上的外部流量,并过滤掉 starttls,这让 thunderbird 的日子不好过。参见:http://markmail.org/message/v5uofqpx5l5pu4rm同样,我已打开端口 587 以供使用,并设置了一条不错的 iptable 规则:

iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to ip.address:25
iptables -t nat -L
iptables -t nat -D PREROUTING 1

相关内容