标签: dovecot

从任何 IMAP/POP3 服务器迁移到 Dovecot

我正在尝试同步驻留在不同服务器中的两个邮箱。这是由于迁移过程。旧服务器是快递服务器,需要通过IMAP访问,而新服务器是dovecot服务器。我正在尝试遵循原始 Dovecot 文档。不幸的是,当doveadm脚本在目标服务器上运行时,没有指定源 IMAP 的配置需要设置的位置。文档提供了设置,但没有提到必须输入哪个 dovecot 配置文件。

imap dovecot

5
推荐指数
2
解决办法
6585
查看次数

Postfix 发送为 hostname.domain.com 而不是 domain.com

我一直在尝试设置运行 postfix 的 debian 邮件服务器,但是当我尝试通过mail example@outlook.com收件人发送邮件时,将发件人视为 hostname.domain.com。它发送的主机名没有设置 A 或 MX 记录,它只是 /etc/hostname。如果我通过登录发送,我可以手动将发件人设置为 admin@mydomain.com telnet localhost 25

我的主要.cf

myorigin = mydomian.com
myhostname = mail.mydomain.com
mydestination = mail.mydomain.com, mydomain.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

smtpd_tls_cert_file=/etc/ssl/certs/mailcert.pem
smtpd_tls_key_file=/etc/ssl/private/mail.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may
smtpd_tls_protocols = !SSLv2, !SSLv3
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
Run Code Online (Sandbox Code Playgroud)

和 mail.log 当我发送电子邮件时

Aug  3 06:28:51 hostname postfix/pickup[7047]: …
Run Code Online (Sandbox Code Playgroud)

email debian smtp postfix dovecot

5
推荐指数
2
解决办法
8286
查看次数

Dovecot 命名空间前缀与底层 Maildir 结构的关系

我试图弄清楚文件系统结构和 dovecot 的命名空间前缀之间是否/什么有联系。具体来说,在我的设置中,我没有声明任何命名空间,所以 dovecot 创建了一个默认命名空间。每当新用户第一次登录时,他们的 maildir 中的文件夹结构是:

Maildir/
   ...
   cur
   new
   .Sent Items
   .Drafts
   .Junk E-mail
   .Deleted Items
   ...
Run Code Online (Sandbox Code Playgroud)

当我从电子邮件客户端登录时,我看到这些邮箱:

INBOX
Sent Items
Drafts
Junk E-mail
Deleted Items
Run Code Online (Sandbox Code Playgroud)

我的问题是:

1.INBOX邮箱不应该是“.INBOX”目录吗?通过查看内容,我看到 INBOX 邮箱从“cur”目录中获取其项目。为什么收件箱邮箱出现这种异常?

2.如果我使用inbox=yes 和prefix=FOO 定义显式私有命名空间,会产生什么后果,如果有的话,这会对文件夹结构和客户端邮箱显示产生什么影响?基本上我无法弄清楚名称空间前缀的用途,以及它是否用于命名用户 Maildir 中的实际目录。

谢谢

编辑:阅读答案并进行更多挖掘后,我仍然遇到这个问题:IMAP 邮箱/文件夹在 Maildir 目录中有其相应的 fs 目录,(例如,当用户创建(从他们的 IMAP 客户端)一个顶级文件夹/邮箱,说“重要”,在Maildir下创建了一个“.Important”目录。所以每个IMAP邮箱/文件夹的映射目录都是Maildir的子目录。除了INBOX邮箱:它对应的目录是Maildir本身。我想将 INBOX 目录设置为 Maildir 的子目录,就像所有其他邮箱一样。我根本不使用 mbox。我想做的事情有意义吗?如果是,我该怎么做?

dovecot

5
推荐指数
0
解决办法
5323
查看次数

不接受 Dovecot SSL 证书

我有从StartSSL颁发的证书,它是一个可信的证书权威机构,我的网站使用它的证书没有问题,所有浏览器也没有关于任何信任问题的投诉。

现在我想在 Dovecot 中进行相同的编程,以便通过认证的 SSL 接收我的电子邮件。所以我使用 IMAP 来获取我的邮件,比如通过地址 mail.myweb.com。我去了 StartSSL,并为该子域颁发了一个证书(这是我通过 Apache 服务器获取任何我想要使用 SSL 的子域时总是这样做的)。

现在我拿到了那个证书,并将它定义为我想在 Dovecot 上用于该域名(使用 SNI)的证书,方法是将以下内容添加到 dovecot.conf

local_name mail.myweb.com {
  ssl_cert = </path/to/certificate/ssl.crt
  ssl_key = </path/to/privatekey/priv.key
}
Run Code Online (Sandbox Code Playgroud)

虽然这个过程在 Apache 服务器上运行得非常好,而且我的浏览器对绿色挂锁很满意,我的证书没有签名问题,但雷鸟坚持我确认这个证书是一个例外。

我通过查看证书的详细信息确认了 Thunderbird 收到的证书是正确的。

原因可能是什么?雷鸟只是偏执,我必须购买证书吗?

如果您需要任何其他信息,请告诉我。

谢谢你。

ssl dovecot thunderbird ssl-certificate certificate-authority

5
推荐指数
1
解决办法
3208
查看次数

重命名 dovecot IMAP 服务器中的垃圾文件夹

作为英语,我发现术语“垃圾”和“垃圾”令人困惑,因为它们的意思基本相同。我想将我的 Dovecot IMAP 服务器上的这些文件夹分别重命名为“已删除”和“垃圾邮件”,因为这些术语对我来说意义更大。

所以我改成15-mailboxes.conf这样,而不是定义邮箱Junk

mailbox Spam {
  special_use = \Junk
  auto = subscribe
}
Run Code Online (Sandbox Code Playgroud)

和类似的垃圾到已删除。

我假设\Junk是一个神奇的词,不应该改变。我还更改了筛选脚本以将邮件重定向到新目录名称。我还将文件系统中的现有文件夹重命名为垃圾邮件等。

当我重新启动 Dovecot 并连接 IMAP 客户端(在本例中为 Outlook 2013)时,Dovecot 仍会创建旧的命名文件夹以及新的文件夹。所以我们有“垃圾邮件”和“垃圾邮件”。“垃圾”是新创建的并且是空的。

我如何抑制这种行为?我只想要“垃圾邮件”和“已删除”。

这里是收件箱的命名空间

namespace inbox {

  #mailbox name {
    # auto=create will automatically create this mailbox.
    # auto=subscribe will both create and subscribe to the mailbox.
    #auto = no

    # Space separated list of IMAP SPECIAL-USE attributes as specified by
    # RFC 6154: \All \Archive \Drafts \Flagged \Junk \Sent \Trash …
Run Code Online (Sandbox Code Playgroud)

directory rename imap dovecot

5
推荐指数
1
解决办法
4675
查看次数

带有 Dovecot 的 Postfix:本地和虚拟用户

我刚刚完成了一个 Postfix SMTP 和 Dovecot IMAP/POP3 服务器的设置。

它对于发送和接收的虚拟用户都非常有效,但我需要执行以下操作:

除了虚拟用户能够检索邮件,我也希望能够检索本地用户的邮件。

所以,那将是从 /home/[user]/Maildir

目前 Dovecot 用户以以下格式存储在文件中 [user@domain]:[pass]:[uid]:[gid]

我也可以以某种方式将本地用户添加到该文件中吗?(我已经尝试过了,但是设置主目录不会阻止 Dovecot 解析为虚拟目录,而不是/home/[user]/Maildir.)

如何检索 Dovecot 用户的邮件以及本地用户的邮件?

email linux postfix dovecot

5
推荐指数
1
解决办法
9939
查看次数

后缀“用户不存在”但用户确实存在

我遇到了在别处找不到的奇怪情况。当我在本地机器上向 rcook 发送邮件时,我在系统日志中看到了这个:

Feb 16 20:27:14 linode postfix/pickup[1305]: 326CC4463F: uid=0 from=<root>
Feb 16 20:27:14 linode postfix/cleanup[1524]: 326CC4463F: message-id=<20150217042714.326CC4463F@linode.example.net>
Feb 16 20:27:14 linode postfix/qmgr[1306]: 326CC4463F: from=<root@example.net>, size=302, nrcpt=1 (queue active)
Feb 16 20:27:14 linode postfix/lmtp[1531]: 326CC4463F: to=<rcook@example.net>, orig_to=<rcook>, relay=linode.example.net[private/dovecot-lmtp], delay=0.06, delays=0.04/0.01/0.01/0.01, dsn=5.1.1, status=bounced (host linode.example.net[private/dovecot-lmtp] said: 550 5.1.1 <rcook@example.net> User doesn't exist: rcook@example.net (in reply to RCPT TO command))
Feb 16 20:27:14 linode postfix/bounce[1533]: 326CC4463F: sender non-delivery notification: 3C71844643
Feb 16 20:27:14 linode postfix/qmgr[1306]: 326CC4463F: removed
Run Code Online (Sandbox Code Playgroud)

看起来“rcook”正在被后缀变成“rcook@example.net”。根据我的 main.cf 文件,我正在使用 mysql 查找后缀: …

postfix dovecot

5
推荐指数
1
解决办法
9274
查看次数

如何使用 dspam 作为具有虚拟域的 postfix 和 dovecot 之间的守护进程处理外部别名?

对于使用 Postfix 2.9.6、DSPam 3.10.1 和 Dovecot 2.1.7 的传入邮件,我遇到了以下情况:

Incoming Mail -> SMTP -> LMTP -> DSpam (as daemon) -> LMTP -> Dovecot
Run Code Online (Sandbox Code Playgroud)

我有带有虚拟邮箱的虚拟域。到目前为止一切正常。

指向外部域的(虚拟?)别名现在出现了问题。假设,我有以下虚拟域:

virtualdomain1.com
virtualdomain2.com
Run Code Online (Sandbox Code Playgroud)

我正在为其处理邮件。服务器本身运行在

mydomain.com
Run Code Online (Sandbox Code Playgroud)

如果我现在添加一个指向外部域的别名,例如:

alias@virtualdomain1.com -> user@externaldomain.com
Run Code Online (Sandbox Code Playgroud)

然后(据我所知),DSPam 检查邮件,通过 LMTP 将其传递给 Dovecot,Dovecot 拒绝邮件,因为 user@externaldomain.com 是未知的(当然这是真的)。

那么如何正确设置以处理虚拟域的别名呢?如果可能,我还想检查虚拟别名的传入邮件。

发送到 alias@virtualdomain1.com 的传入消息的日志是:

postfix/smtpd[23910]: connect from xxx.anyhost.com[1.2.3.4]
postfix/smtpd[23910]: NOQUEUE: filter: RCPT from xxx.anyhost.com[1.2.3.4]: <alias@virtualdomain1.com>: Recipient address triggers FILTER lmtp:unix:/dspam/dspam.sock; from=<sender@anyhost.com> to=<alias@virtualdomain1.com> proto=ESMTP helo=<anyhost.com>
postfix/smtpd[23910]: D91D0771AF70: client=xxx.anyhost.com[1.2.3.4]
postfix/cleanup[23917]: D91D0771AF70: message-id=<550937C8.9050901@anyhost.com>
postfix/smtpd[23910]: disconnect from xxx.anyhost.com[1.2.3.4]
postfix/qmgr[23278]: D91D0771AF70: from=<sender@anyhost.com>, size=1030, nrcpt=1 (queue …
Run Code Online (Sandbox Code Playgroud)

postfix dovecot alias virtualhost dspam

5
推荐指数
1
解决办法
541
查看次数

后缀 dovecot 禁用 lmtp

我有3台服务器。1 个带 postfix 的 MX 服务器和 2 个 dovecot 服务器。MX 服务器接收电子邮件,然后通过 LMTP 将它们提供给特定的 dovecot 服务器。来自同一域的所有邮箱都在同一台服务器上。

有没有办法临时禁用 LMTP 并为特定域延迟消息?例如,在 dovecot 服务器之间迁移域的情况下。

在后缀上我使用 transport_maps

transport_maps = mysql:/etc/postfix/sql/transport.cf
Run Code Online (Sandbox Code Playgroud)

有了这个查询

 query = SELECT concat('lmtp:',servers.address, ':24') FROM servers
         JOIN domains ON (domains.server_id=servers.ID)
         WHERE domains.name LIKE SUBSTRING_INDEX("%s", "@", -1)
         LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

Dovecot 正在侦听端口 24 上的 lmtp,dovecot 中的 user_query 是

user_query = SELECT 1
        FROM domains
        JOIN mailboxes ON (domains.ID=mailboxes.domain_id)
        WHERE
            domains.name LIKE '%d'
            AND mailboxes.name LIKE '%n'
            AND domains.server_id='X'
        LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

我检查了 dovecot user_query 手册页,但没有什么可以帮助我(http://wiki2.dovecot.org/UserDatabase …

smtp postfix dovecot

5
推荐指数
1
解决办法
1289
查看次数

如果超过配额,Dovecot 配额不会重新计算,也不会拒绝邮件

我正在尝试在 Dovecot 中设置配额。目前 Postfix 与 Dovecot 和 postfixadmin 一起在 Debian Jessie 上运行。

我的问题是配额没有应用,也没有重新计算。即使我超过了 300% 或更多的配额,邮件仍然可以送达。此外,当收到新邮件时,相应表中的值quota2永远不会更新。

这是我到目前为止所做的:

我已经编辑了我/etc/dovecot/dovecot.conf以启用配额(好吧,至少我认为我这样做了):

# 2.1.7: /etc/dovecot/dovecot.conf
# 操作系统:Linux 3.2.0-4-amd64 x86_64 Debian 7.1
# 启用配额插件
mail_plugins = $mail_plugins 配额

auth_mechanisms = 普通登录
log_timestamp = "%Y-%m-%d %H:%M:%S"

# 每个ip需要10个以上的连接
mail_max_userip_connections = 20

# 只启用 imap
协议 = imap

# 证书
ssl_cert=</etc/ssl/localcerts/mailserver.crt
ssl_key=</etc/ssl/localcerts/mailserver.key

密码{
  args = /etc/dovecot/dovecot-mysql.conf
  驱动程序 = sql
}

用户数据库{
  args = /etc/dovecot/dovecot-mysql.conf
  驱动程序 = sql
}

服务认证{
  unix_listener /var/spool/postfix/private/auth_dovecot {
    组 = …

dovecot

5
推荐指数
1
解决办法
2845
查看次数