使用 DomainPOP 邮件收集(“设置 » 服务器设置 » DomainPOP”)来配置 MDaemon 从远程 POP 邮箱下载邮件再分发到你的用户。此功能可以使用 POP3 协议来下载与指定登录信息相关联的 ISP 的 POP 邮箱中找到的所有邮件。一旦下载完成,将根据此对话框上提供的设置来解析邮件,然后分发到用户的邮箱或 MDaemon 的远程队列来投递,就好象邮件是使用了传统的 SMTP 处理来抵达服务器的。
值得注意的是,存储在邮箱中并且使用 POP3 协议进行检索的邮件将缺少重要的路由信息(有时被称为邮件的“信封”)。如果这些邮件是使用了更加强大的 SMTP 协议来投递,则将照常提供这些信息。没有这些信息,Mdaemon 会强制“读取”邮件并且检查这些报头来确定邮件的来源。至少说来这并非精确的科学。邮件报头由于缺乏必要的信息,有时很难确定邮件的目标收件人。这种缺乏的信息似乎是正常邮件的必要信息-收件人-但是必须知道,如果使用POP协议,邮件是不会被发送到收件人的。使用 SMTP,由于协议本身在传递会话中和服务器使用命令交互,所以邮件内容和收件人是不相关的。
为了让 POP 检索邮件和传递邮件更加可靠和协调,MDaemon 使用了一套强大的报头处理选项。当Mdaemon从远程POP下载邮件,立即会处理邮件中相关的邮件头,然后创建相关的收件人。在 MDaemon 检查的报头中找到的各个邮件地址都会包含在这个集合中。
当进程结束的时候,MDaemon 的收件人收集将被分为本地组和远程组。此外,所有被解析并被放入潜在收件人集合的所有地址,在被分为本地集合和远程集合之前都将经过“别名”转换程序的处理。本地集合的各个成员(地址使用匹配 MDaemon 本地域的域)将收到邮件的一个副本。对于远程集合地址,在这个对话框中设置。你可以选择简单地忽略这些地址,转发概要列表到邮件管理员—或 MDaemon 将真实传递邮件到远程收件人。只有在少数情况下,才需要保证把邮件传递到远程收件人。
必须要注意防止产生重复邮件或无限制的邮件传递循环。一个常见的问题就是邮件列表的邮件丢失标识自己的SMTP信封。典型的,由邮件列表分发的邮件通常在邮件体中不包含任何和收件人相关的地址。而是,邮件列表引擎仅会将邮件列表名称插入到“收件人:” 这导致接下来的问题: 如果“收件人:” 字段中包含了邮件列表的名称,那么就有可能让 MDaemon 来下载该邮件, 解析此“收件人:” 字段(将会生成邮件列表的名称),然后将这封邮件发回相同的列表中。这将导致投递该邮件的备份到 MDaemon 下载该封初始邮件的 POP 邮箱—从而又导致了整个循环。为了解决这个问题,邮件管理员必须小心使用Mdaemon提供的工具来删除邮件列表邮件,或使用别名来把信件投递到相应的邮箱。您也可以使用“路由规则”或“内容过滤器”来将邮件投递到正确的收件人。
另外一个顾虑就是当使用这种邮件收集方法会产生意想不到的邮件副本问题。一旦使用 DomainPOP 来收集邮件,对于使用 SMTP 投递到 ISP 的 POP 邮箱的邮件来说很容易就会产生不想要的邮件副本。假设一封邮件发送给你域中的某个人,抄送给该域的另外一个人。在这种情况下,SMTP 将投递该邮件的两个副本到您的 ISP 邮箱—每个收件人有一份。两个邮件文件都会包含两个收件人的参考—有一个在收件人: 字段而另一个在抄送: Mdaemon会收集这两封相同的邮件而后会处理每个邮件的地址。这将会导致每个收件人都会收到两封相同的邮件。为了避免这种情况,Mdaemon设置将检查指定一个邮件头来看看是否被复制。邮件 ID 字段就是个好主意。在上述例子中,两个相同的邮件包含相同的邮件 ID 字段值。MDaemon 可以使用这个值,在地址信息能够被解析之前的下载阶段来识别并删除第二封邮件。
作为一个解决复制邮件和终止邮件传递循环的终极解决方案,MDaemon 使用一种方法来检测在邮件传输系统中邮件经过多少跳转。当 SMTP 邮件服务器每次处理一封邮件时,都会为邮件加上一个“已接收”报头。当Mdaemon第一次接收到该邮件时,计算所有这样的邮件头。如果总的数量超过一个指定的值,很有可能该邮件进入一个传递循环了而应该被放到一个坏的队列里去。此值可以在重试队列”下配置。
还请参阅: