我正在编写一些PERL代码,用于在运行postfix / dovecot / mysql堆栈的远程服务器上添加/删除邮箱和别名。
我想知道,是否有人拥有在远程邮件服务器上需要通过编程完成哪些工作的经验或确切信息?
对于添加邮箱,我认为它就像在后缀->邮箱表中插入一个新行一样简单。当邮件接收/发送时,postfix和dovecot将在/var/vmail下创建相关的文件/文件夹。
对于删除邮箱,我相信除了删除相关的postfix ->邮箱表行外,还需要运行bash命令:
rm -rf /var/vmail/[domain]/[username]..。以清除用户的实际消息和附件。
我认为在Dovecot方面没有什么可做的,因为它使用了上面提到的数据。
对于那些感兴趣的人,我使用LWP:UserAgent将web发送到邮件服务器上的本地PERL脚本,以便运行DBI和bash命令。
发布于 2017-10-10 09:05:22
我就是这样解决这个难题的。
首先,该体系结构是一个运行Postfix/Dovecot/MySQL的远程邮件服务器。我的管理服务器是它自己的LAMP堆栈,在其中我有一个自定义的数据库和表来跟踪邮箱:用户、域、状态(等等)。我之所以提到这一点,是因为它将帮助人们制定自己的自定义解决方案。
但是,从理论上讲,它都可以在同一台服务器上运行(直接进入步骤2)。
若要删除邮箱,请执行以下操作:
我将创建日期设置为该唯一值的原因是,它是一个不会被普通后缀操作更改的列。
并以SQL命令结束:
DELETE FROM mailbox WHERE local_part='$delete_mailboxes->[$x][0]' AND domain='$delete_mailboxes->[$x][1]'实际上,它使用后缀邮箱表中已经存在的数据来测试要删除哪些邮箱,邮箱是否有要删除的现有文件夹/文件,如果找到,则使用root权限删除它(这克服了严格的文件系统权限。
现在可以使用多种不同的编程语言,使用不同版本的后缀、不同的数据库版本和不同的web服务API.重要的一点是,它在cron作业中使用根权限来查询数据库以确定是否删除/删除什么。
希望这能帮你节省很多时间。
https://stackoverflow.com/questions/46558581
复制相似问题