我在干净的 Ubuntu 13.04 安装上设置 Postfix 和 Courier IMAP 时遇到了一个奇怪的问题。我在用着本教程,目前是测试快递 IMAP。
当我尝试使用 root 登录时,一切都很好(这是 netcat 连接的一部分):
a login root my-pass
a OK LOGIN Ok.
a logout
* BYE Courier-IMAP server shutting down
a OK LOGOUT completed
但是,当我尝试使用自己的帐户登录时,出现错误:
a login camilstaps my-other-pass
* BYE [ALERT] Fatal error: No such file or directory: No such file or directory
邮件日志:
Jun 2 13:47:37 cs imapd: Connection, ip=[::ffff:127.0.0.1] # this is the root login
Jun 2 13:47:51 cs imapd: LOGIN, user=root, ip=[::ffff:127.0.0.1], port=[54630], protocol=IMAP
Jun 2 13:48:11 cs imapd: LOGOUT, user=root, ip=[::ffff:127.0.0.1], headers=0, body=0, rcvd=9, sent=80, time=20
Jun 2 13:50:59 cs imapd: Connection, ip=[::ffff:127.0.0.1] # this is the other login
Jun 2 13:51:07 cs imapd: chdir Maildir: No such file or directory
Jun 2 13:51:07 cs imapd: camilstaps: No such file or directory
而 mail.err 并没有真正添加一些东西:
Jun 2 13:51:07 cs imapd: camilstaps: No such file or directory
我将 Postfix 配置为使用 Maildir 格式,/var/mail/%u
其中使用的%u
是用户名。起初,我以为 camilstaps 用户错过了他的邮件文件夹。然而,它确实有一个与 root 类似的功能:
root@cs:/# tree -CdA /var/mail
/var/mail
├── camilstaps
│ └── Maildir
│ ├── cur
│ ├── new
│ └── tmp
└── root
└── Maildir
├── cur
├── new
└── tmp
然后我认为 camilstaps 用户在 MAIL 常量中有一个不同的 maildir,但是......
root@cs:/# echo $MAIL
/var/mail/root
camilstaps@cs:/$ echo $MAIL
/var/mail/camilstaps
这里发生了什么?我怎样才能解决这个问题?
无论如何,我使用的是 Ubuntu Server 13.04。
在评论的帮助下,我发现了一些有趣/可能有用的东西:
- 中有一个旧的 Maildir
/root
。当我删除该错误后,以 root 身份登录 IMAP 服务器时会出现相同的错误。 - 当我将 Maildir 目录添加到 camilstaps 用户的 homedir 时,我不再收到错误。
由于某种原因,IMAP 服务器不会在/var/mail/%u
( %u
= 用户名) 中查找,而是在%h/Maildir
( %h
= homedir) 中查找。变量$MAIL
已经正确设置,那么这里可能出现什么问题呢?
答案1
它出现Courier IMAP 的架构不支持$HOME
.