首页 > 解决方案 > 如何在 MySQL 中配置 postfix、dovecot 邮件服务器以保存日志

问题描述

我想在我的 SQL 中记录发件人姓名、收件人姓名和交付时间,但我不知道我应该为此配置 postfix 或 dovecot 以及如何配置它们有人可以帮助我吗?

标签: mysqlpostfix-mtadovecot

解决方案


最直接和非侵入性的方法是将所有消息传递给syslog. 该功能已经内置于postfixdovecot。说dovecot配置应该是这样的:

. . . .
log_path        = syslog
syslog_facility = mail
. . . .

syslog可以将从某个二进制文件接收到的所有消息定向到管道。

mail.*     |/tmp/maillog.pipe

然后一些脚本应该读取该管道,解析行并调用将数据存储到数据库中的 CLI mysql 客户端。

#!/bin/sh
while read LINE
do 
   # all the parsing should be written here
   mysql -e "USE maillog; INSERT INTO $table VALUES ($a, $b, $c);" 
   # any additional proceeding can be performed here
done < /tmp/maillog.pipe
####

所有这些都不是一个有效的解决方案,而只是一个提示。确切的配置和脚本代码取决于您的实际需要。


推荐阅读