mysql - 如何在 MySQL 中配置 postfix、dovecot 邮件服务器以保存日志
问题描述
我想在我的 SQL 中记录发件人姓名、收件人姓名和交付时间,但我不知道我应该为此配置 postfix 或 dovecot 以及如何配置它们有人可以帮助我吗?
解决方案
最直接和非侵入性的方法是将所有消息传递给syslog
. 该功能已经内置于postfix
和dovecot
。说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
####
所有这些都不是一个有效的解决方案,而只是一个提示。确切的配置和脚本代码取决于您的实际需要。
推荐阅读
- c# - HttpResponseMessage - 从 API 调用解压缩 Gzip 响应会引发以下异常g - 响应过早结束
- java - 使用映射器类将 DTO 转换为实体
- python - 将 tensorflow 估计器转换为 SavedModel 时出错
- sqlite - 您的目标项目“XXX”没有引用 EntityFramework。这个包是必需的
- javascript - sigmajs goTo api没有改变dom上的任何东西
- mysql - Laravel,Mysql重复条目
- ios - 禁止从 Google 登录对话框转义到网络
- dependency-injection - Nestjs,在拦截器中使用依赖注入类的方法时遇到一些问题,注入无法解决
- java - 为什么删除 StringBuilder 语法错误中的最后一个字符?
- java - int parseInt(String s) 和 Integer.valueOf(String s) 有什么区别?还有什么是带有数字参数{10或等}的基数