mysql - 如何配置postfix、dovecot邮件服务器在MySQL中保存日志

标签 mysql postfix-mta dovecot

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

最佳答案

最直接且非侵入性的方法是将所有消息传递到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
####

所有这些都不是一个可行的解决方案,而只是一个提示。具体配置和脚本代码取决于您的实际需求。

关于mysql - 如何配置postfix、dovecot邮件服务器在MySQL中保存日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53246810/

相关文章:

Linux Dovecot 未使用 Imap 显示所有文件夹

java - SASL 登录验证失败 : UGFzc3dvcmQ6

linux - Dovecot 和 cyrus 的区别

mysql - 将值附加到存储在 MySQL 中的 JSON 解码数组参数

mysql - 在 INSERT INTO 语句 MySQL 中引用当前行

mysql - 使用 slice 执行 sql 准备语句

mysql查询显示为名为department的列创建的所有枚举值?

django - 没有收到Django错误电子邮件

filter - 多后缀输出IP

c - 如何用科学记数法计算小数和 float - 例如{1.23e4}。在后缀中?