情况:
星座:我们有专业的提供商pipe理的专用服务器。 我们目前在我们的本地networking中使用Tobit David.fx服务器,该服务器通过发送到域的IMAP从在线服务器获取所有电子邮件。 我们想用一台运行Postfix和Dovecot的Ubuntu服务器replaceDavid.fx。
我们期望的系统将如下所示:
我们的用户通过一个普通的客户端(如Thunderbird)访问他们的邮箱,这个客户端连接到我们的本地networking的服务器并从中获取configuration地址的邮件。
该本地服务器除了从IMAP邮箱中在线获取所有的电子邮件,并且将其置于相应的邮箱中之外,不应该做任何其他的事情。
发送的邮件也应该像这样发送,反之亦然。 客户端使用其configuration为通过本地networking服务器上的SMTP发送的邮件程序。 该服务器实际上不会自己发送邮件,而是使用在线服务器发送邮件。
所以就像在线服务器会像代理或隧道一样。 在线服务器上设置转发到我们的本地邮件服务器不是一个选项。
我是否有权进一步研究如何使用Postfix和Dovecot来完成上述基于上述情况? 它们适合这种情况吗? 我发现有大量的资源需要阅读,但是由于相同的术语,大多数情况下都会有不同的问题。
PS:我想提供一个草图,但是由于缺乏ServerFault的声誉,我还不能做到。
这里提出你的案例的邮件stream图。
External mail server | ▲ | | POP3 SMTP | | ▼ | Local mail server
首先,你需要用postfix和dovecot设置工作本地邮件服务器。 postfix的重要参数是永远不会在relay_domains 列出你的本地域 。 您可以使用virtual_mailbox_domains或mydestination作为本地域。
其次,您需要从外部邮件服务器向本地填充/同步用户。 因此,外部邮件服务器具有用于接收电子邮件的有效收件人列表,并且本地邮件服务器具有用于数据库authentication和pipe理
对于传出电子邮件stream ,只需使用SASL设置SMTP提交服务即可 。 然后在postfix relayhost设置为您的外部邮件服务器。 您还应该使用单个用户名或其他方法设置postfix SMTP客户端 。 这将取决于你的提供者邮件服务器。
对于传入的电子邮件stream ,您应该使用cron / other守护进程方法定期检查外部邮件服务器中的INBOX,通过POP3下载新邮件(下载后不要忘记删除它)并将其放入正确的邮箱。 Fetchmail将适合这个任务。