可以将电子邮件备份到 MySQL 数据库中吗?比如说,我有一个账户[电子邮件保护]并且我想在我的计算机本地保存 mail.domain.com 内的所有电子邮件记录。
从我在网上搜索到的信息来看,邮件服务器将电子邮件存储为文本文件。所以,如果我能得到这个文件,把它传输到我的本地计算机,那么我就可以处理它并将其存储到数据库中,对吗?
所以,我的问题是:如何将文件从邮件服务器传输到我的本地计算机?如何识别文件?
任何例子都将非常感激。
先感谢您。
答案1
大多数邮件服务器将电子邮件存储在“邮件文件夹”或“邮件目录”中。“邮件文件夹”表示每个文件夹/类别中都存储了所有电子邮件,一封接一封。“邮件目录”表示每个文件夹实际上是一个目录,其中每封邮件都表示为该目录中的单个文件。
您说得对,如果您收到此邮件文件(实际上是指邮件文件夹或邮件目录,您可以编写脚本将其导入到您的数据库中。
至于识别邮件目录/文件夹,这不是您要做的事情,而是您所在域的“邮件管理员”会建议您做的事情,因为它们可能位于任何地方。常见位置(在 Unix 系统上)包括 /var/spool/mail 和 ~mail - 但这是任意的。
获取邮件文件夹/目录的另一种方法是指示服务器将其提供给您。根据您的情况,如果您的所有电子邮件都放在收件箱中,并且您的提供商使用“POP3”协议,您应该能够编写一个机制来提取每封邮件并对其进行处理。POP3 是一种非常简单的协议。您可以使用 IMAP 执行类似操作 - 这将使您能够访问所有文件 - 但使用起来要困难得多,并且可能需要框架/库来帮助。
邮件信息本身非常简单 -
它们由一个标题(由两行分隔)和正文组成。您可以解析标题以获取邮件的发件人、收件人、主题、日期等。正文可以是文本,也可以分成多个部分,每个部分通常都采用 Base64 编码(但也有其他方法)- 例如,如果您收到一封包含 HTML 和文本的电子邮件,或者电子邮件中包含电子邮件或附件。