我已经成功安装了 sendmail,但当我通过 Outlook 连接到 Courier IMAP 服务器时,收件箱显示为空。当我在服务器上使用 Alpine 本地检查收件箱时,收件箱中有内容。为什么?我确实在 /var/mail 中看到了有内容的文件。那不是 Courier-imap 检查邮件的地方吗?
设置非常干净 - 我在 AWS 上运行 Ubuntu 12.04,安装了 sendmail 和 courier-imap。sendmail 已配置sendmailconfigure
,可以很好地发送和接收邮件。问题出在 courier 上。
答案1
实际上sendmail
默认情况下邮件存储在~/mail
(即当前用户的主目录 + mail
)中,而未经修改的 Courier 正在查找~/Maildir
Postfix 和 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