在DB(postfix)中存储邮件的最佳方式

sup*_*ser 7 mysql email postfix-mta

请给我一个最好的解决方案来存储所有邮件(发送,接收,转发)在mysql与postfix?这是正确的方法吗?

mvp*_*mvp 7

Postfix服务器本身不存储电子邮件(至少不是很长时间) - 它只能暂时排队,直到它被转发给预期的收件人.通常,只有IMAP(或过时的POP3)服务器实际存储您的电子邮件.

大多数开源IMAP服务器(Courier,Cyrus,Dovecot ......)支持使用MySQL作为数据库来保存元信息,如用户和密码列表,接受域列表,用户别名等.但是没有人试图制作使用像MySQL这样的数据库作为实际的存储后端.

当然,如果您真的喜欢冒险,可以尝试实现自己的SQL IMAP后端.对您而言,最重要的考虑因素之一是数据库引擎对无限长度VARCHAR或BLOB(用于电子邮件附件)的良好支持.不幸的是,就BLOB支持而言,MySQL不是很好的服务器(你必须调整客户端和服务器配置).此外,您可能希望获得良好的交易支持 - 如果您关心电子邮件数据的安全性.对于MySQL,这意味着您必须使用InnoDB引擎.

  • 这是误导......接受的答案和明显的错误......你应该研究它的实际工作原理并编辑你的答案. (4认同)
  • 我认为你的答案在某些方面是错误的.如果我们谈论外发邮件队列是正确的.但传入邮件postfix会将电子邮件存储到文件系统中.从那里,imap/pop服务器将接收它们.存储以mbox格式完成,通常位于/ var/spool/mail/[username] (3认同)
  • 如果在服务器(没有IMAP或POP3)上安装postfix,则发送和接收的邮件会发生什么情况?!它渐渐消失了…… (2认同)
  • 抱歉,最后一部分是讽刺,但无论如何我指的是冒犯。尽管我想指出的观点很明显。如果看一下配置,您会看到其中两个指定了您要存储邮件的位置,是的后缀配置是:“ home_mailbox = Maildir /”和“ virtual_mailbox_base = / mail”。因此,在我的情况下,所有邮件都存储在`/ mail`中,每个邮件都位于相应的收件箱/已发送文件夹中,并且位于帐户名称父文件夹中。另外,SMTP只是postfix使用的协议,postfix是MTA(邮件传输系统)。Postfix开发人员做到了这一点,以便它可以存储邮件(直到今天是事实)。 (2认同)
  • 我说的是观点还是事实?您需要什么证据才能证明答案是错误的?答案已禁用,问题已关闭。这不是关于谁是对还是错,您至少应该看看配置并亲自查看一下,然后进行编辑,以便新人们通过Google或任何其他搜索引擎找到您的答案... (2认同)
  • 您声称postfix不存储邮件,但您可以对其进行配置,以将邮件传递到本地文件系统中的邮箱...我只是说,将其编辑为:“ Postfix可以将邮件传递到邮箱,如果已配置”。这不是我的意见,您写了一个谎言,而postfix文档证明了这一点。另外,编辑IMAP(和POP3)服务器存储邮件的部分,因为它们的工作是对虚拟用户进行身份验证并检索其邮件,就像Bernd Ott告诉您的一样……同样,不是我的观点,文档证明您错了。如果回答,至少应该做的是研究... (2认同)