Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291032
  • 博文数量: 49
  • 博客积分: 4776
  • 博客等级: 中校
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-02 10:42
文章分类

全部博文(49)

文章存档

2010年(6)

2009年(8)

2008年(20)

2007年(10)

2006年(2)

2005年(3)

分类:

2010-03-25 18:00:22

利用autoresponder.php+mysql+crontab+postfix做自动回复

Author:汪洋
Nickname:ruochen / ruochen0926
Date:20100325
Version:1.0
Contact: E-Mail:ruochen0926(at)gmail.com  QQ:967409
Blog:http://ruochen.cublog.cn/

 

背景:之前邮件系统采用的组件是postfix+mysql+dovecot+extman+extmail+mailscanner+clamav+sa,参考了iredmail和extmail的官方解决方案,由于没有完全采用任何一方的所有组件,导致邮件的转发(另外一篇文件有实现方法)和自动回复一直没能实现,本片文件主要是解决自动回复这个问题,欢迎转载,请保留作者信息

 

1.准备工作

保证邮件系统正常使用没有问题,php版本5.0以上,依赖php-cli包

 

1.1下载文件:

Wget

1.2 解压文件:

Tar zvxf goldfish-1.1-STABLE.tar.gz

1.3移动到指定的位置

  cp goldfish-1.1-STABLE/autoresponder.php /var/www/extsuite/extmail/html/

 

2.配置文件

参考:

2.1建立数据库表

use extmail

CREATE TABLE `autoresponder` (
`email` varchar(255) NOT NULL default '',
`descname` varchar(255) default NULL,
`from` date NOT NULL default '0000-00-00',
`to` date NOT NULL default '0000-00-00',
`message` text NOT NULL,
`enabled` tinyint(4) NOT NULL default '0',
`subject` varchar(255) NOT NULL default '',
PRIMARY KEY (`email`),
FULLTEXT KEY `message` (`message`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 2.2 编辑autoresponder.php

      vi /var/www/extsuite/extmail/html/autoresponder.php

 

修改数据库连接信息

    /* Database information */
    $conf['mysql_host'] = "localhost";
    $conf['mysql_user'] = "extmail";
    $conf['mysql_password'] = "extmail";
    $conf['mysql_database'] = "extmail";

 

修改由于maildir位置和字段信息(红色标记)

 $conf['q_mailbox_path'] = "SELECT CONCAT('/opt/maildata/', SUBSTRING_INDEX(username,'@',-1), '/', SUBSTRING_INDEX(username,'@',1), '/') as `path` FROM mailbox  WHERE `username` = '%m'";

 

修改maildir位置信息,依赖dovecot中的mail_location参数(红色标记)

 $paths[] = mysql_result($result, 0, 'path') . 'Maildir/new/'; 

 

3.建立日志文件

   touch /var/log/goldfish

 

   改变日志的属主

   chown postfix.root /var/log/goldfish

 

 日志处理

 用logrote或者禁止日志

 

4.设定crontab

  */5 * * * * postfix /var/www/extsuite/extmail/html/autoresponder.php


 

6.在extmail.autoresponder表中插入要做自动回复的相关信息

  可以利用phpmyadmin或者mysql的命令行工具

 

7.修改autoresponder.php的属性
   chown postfix.postfix /var/www/extsuite/extmail/html/autoresponder.php
   chmod +x /var/www/extsuite/extmail/html/autoresponder.php


8.利用日志信息Debug
   tail -f /var/log/goldfish

阅读(1947) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~