【发布时间】:2012-09-30 15:34:26
【问题描述】:
请给我一个最好的解决方案,用后缀将所有邮件(发送、接收、转发)存储在 mysql 中? 和 这是正确的方法吗?
【问题讨论】:
-
是的,我正在寻找最佳架构。
-
dbmail 是您要找的那种东西吗?
标签: mysql email postfix-mta
请给我一个最好的解决方案,用后缀将所有邮件(发送、接收、转发)存储在 mysql 中? 和 这是正确的方法吗?
【问题讨论】:
标签: mysql email postfix-mta
Postfix 服务器本身不存储电子邮件(至少不会很长时间) - 它只能暂时排队,直到它被转发给预期的收件人。通常只有 IMAP(或过时的 POP3)服务器实际存储您的电子邮件。
大多数开源 IMAP 服务器(Courier、Cyrus、Dovecot...)都支持使用 MySQL 作为数据库来保存用户和密码列表、接受域列表、用户别名等元信息。但甚至没有尝试使用像 MySQL 这样的数据库作为实际的存储后端。
当然,如果您真的喜欢冒险,您可以尝试实现自己的 SQL IMAP 后端。 对您而言,最重要的考虑因素之一是数据库引擎对无限长度的 VARCHAR 或 BLOB(用于电子邮件附件)的良好支持。不幸的是,就 BLOB 支持而言,MySQL 并不是很好的服务器(您必须为此调整客户端和服务器配置)。此外,如果您关心电子邮件数据的安全,您可能希望获得良好的交易支持。对于 MySQL,这意味着您必须使用 InnoDB 引擎。
【讨论】:
home_mailbox = Maildir/ 和 virtual_mailbox_base = /mail。因此,在我的情况下,所有邮件都存储在/mail 中,每个邮件都存储在其各自的文件夹收件箱/已发送和帐户名父文件夹内。此外,SMTP 只是 postfix 使用的协议,postfix 是 MTA(邮件传输系统)。 Postfix 开发人员这样做是为了让它可以存储邮件(直到今天它都是真的)。
你可以试试https://wiki.ubuntu.com/PostfixCompleteVirtualMailSystemHowto 使用mysql和postfix的虚拟邮件、域和用户。
【讨论】: