首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dovecot邮件位置问题

Dovecot邮件位置问题
EN

Stack Overflow用户
提问于 2015-09-27 21:11:48
回答 1查看 2.4K关注 0票数 0

问题

Dovecot不像我预期的那样使用mail_location

我想为LDAP目录中的用户提供电子邮件服务。用户帐户是存储在LDAP中的虚拟帐户,不是映射到本地用户的

详细信息

包版本

代码语言:javascript
复制
OS              Debian GNU/Linux 8.2 (jessie)
dovecot-core    1:2.2.13-12~deb8u1
dovecot-imapd   1:2.2.13-12~deb8u1
dovecot-ldap    1:2.2.13-12~deb8u1
squirrelmail    2:1.4.23~svn20120406-2
postfix         2.11.3-1
apache2         2.4.10-10+deb8u3

配置细节

我设置了/etc/dovecot/conf.d/10-mail.conf

代码语言:javascript
复制
mail_location = maildir:/var/mail/vhosts/%d/%n

因此,我希望邮件定位在/var/mail/vhosts/mydomain.com/myuser for myuser@mydomain.com

dovecot -n命令引发的一些dovecot设置如下:

代码语言:javascript
复制
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
protocols = " imap lmtp sieve"
service auth-worker {
  user = vmail
}
service imap-login {
  inet_listener imap {
    port = 143
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}

/var/log/mail.log中使用tail -f命令,它抛出:

代码语言:javascript
复制
Sep 27 19:10:48 balam dovecot: imap-login: Login: user=<myuser>, method=PLAIN, rip=::1, lip=::1, mpid=24907, secured, session=<7/umVr8gvwAAAAAAAAAAAAAAAAAAAAAB>
Sep 27 19:10:48 balam dovecot: imap(myuser): Error: user myuser: Initialization failed: Namespace '': mkdir(/var/mail/vhosts//myuser) failed: Permission denied (euid=30000(myuser) egid=30002(IT) missing +w perm: /var/mail/vhosts/, dir owned by 5000:5000 mode=0755)
Sep 27 19:10:48 balam dovecot: imap(myuser): Error: Invalid user settings. Refer to server log for more information.

它试图在/var/mail/vhosts//myuser创建邮件目录,而不是我想要和期望的/var/mail/vhosts/mydomain.com/myuser

如果你需要更多的细节,请问我!

测试

为了测试登录,我已经挂载了一个SquirrelMail客户端,它触发了以前登录在/var/log/mail.log中的事件。

EN

回答 1

Stack Overflow用户

发布于 2015-09-27 22:00:31

您必须在配置中设置两个参数-- mail_uidmail_gid。在没有设置它们之前,deliver执行数据库查找以获取adressee的UID和GID。如果有的话-它们将用于文件系统访问。虽然邮件存储等级属于5000:5000,但是LDA没有权限在/var/mail/vhosts中写入

只需添加可以访问邮件存储的用户的显式声明:

代码语言:javascript
复制
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_uid = 5000 # or his login name
mail_gid = 5000 # or his group name

并重新启动dovecot。然后使用UID/GID=5000调用deliver。更重要的是,现在您可以将邮件存储权限设置为700,以防止除5000:5000以外的任何人访问邮件存储。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32812893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档