金鱼,用于youcl的PHP自动应答脚本“具有Postfix,Courier,MySQL和SquirrelMail的虚拟用户和域”设置
版本1.0
作者:Falko Timme
Goldfish是Postfix的一个非常简单的自动回复脚本(用PHP编写)。 它只包含一个可以通过cronjob启动的PHP文件。 它与我们的“虚拟用户和域使用Postfix,Courier,MySQL和SquirrelMail”教程配合使用(不能用于其他设置,特别是不使用MySQL数据库的Postfix设置)。
我不会保证这将为您工作!
1初步说明
我假设你已经有一个工作的“虚拟用户和域与Postfix,Express,MySQL和松鼠邮件”设置,例如:
- 虚拟用户和域名与Postfix,Courier,MySQL和SquirrelMail(Debian Lenny)
- 使用Postfix,Courier,MySQL和SquirrelMail的虚拟用户和域(CentOS 5.3 x86_64)
- 虚拟用户和域用Postfix,Courier,MySQL和SquirrelMail(Fedora 10)
- 使用Postfix,Courier,MySQL和SquirrelMail(Ubuntu 8.10)的虚拟用户和域
- 虚拟用户和域名与Postfix,Courier,MySQL和SquirrelMail(Mandriva 2009.0 i386)
2安装和使用金鱼
首先我们连接到我们的MySQL 邮件
数据库,并创建一个名为autoresponder
的附加表:
mysql -u root -p
USE mail;
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;
quit;
之后,我们将最新的金鱼版本下载到/ tmp
,并将goldfish
PHP脚本重命名为autoresponder.php
:
cd /tmp
wget http://remofritzsche.ch/goldfish/download/current.tar.gz
tar xvfz current.tar.gz
cd goldfish-002p1/
mv goldfish-002-p1.php autoresponder.php
然后我们打开autoresponder.php
并调整配置
部分。 确保填写正确的数据库详细信息(可以使用现有的mail_admin
MySQL用户); 在$ conf ['q_mailbox_path']
行中,确保用户将表名替换为view_users
:
vi autoresponder.php
[...] ###################################### # Configuration # ###################################### /* General */ $conf['cycle'] = 5 * 60; /* Logging */ $conf['log_file_path'] = "/var/log/goldfish"; $conf['write_log'] = true; /* Database information */ $conf['mysql_host'] = "localhost"; $conf['mysql_user'] = "mail_admin"; $conf['mysql_password'] = "mail_admin_password"; $conf['mysql_database'] = "mail"; /* Database Queries */ # This query has to return the path (`path`) of the corresponding # maildir-Mailbox with email-address %m $conf['q_mailbox_path'] = "SELECT CONCAT('/home/vmail/', SUBSTRING_INDEX(email,'@',-1), '/', SUBSTRING_INDEX(email,'@',1), '/') as `path` FROM users WHERE `email` = '%m'"; # This query has to return the following fields from the autoresponder table: `from`, `to`, `email`, `message` where `enabled` = 2 $conf['q_forwardings'] = "SELECT * FROM `autoresponder` WHERE `enabled` = 1"; # This query has to disable every autoresponder entry which ended in the past $conf['q_disable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 0 WHERE `to` < CURDATE();"; # This query has to activate every autoresponder entry which starts today $conf['q_enable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 1 WHERE `from` = CURDATE();"; # This query has to return the message of an autoresponder entry identified by email %m $conf['q_messages'] = "SELECT `message` FROM `autoresponder` WHERE `email` = '%m'"; # This query has to return the subject of the autoresponder entry identified by email %m $conf['q_subject'] = "SELECT `subject` FROM `autoresponder` WHERE `email` = '%m'"; [...] |
然后我们将autoresponder.php
移动到/ usr / local / bin
,使其由用户和组vmail拥有
,并使其可执行:
mv autoresponder.php /usr/local/bin
chown vmail:vmail /usr/local/bin/autoresponder.php
chmod 755 /usr/local/bin/autoresponder.php
现在我们创建日志文件/ var / log /
goldfish
并使其由用户和组vmail拥有
:
touch /var/log/goldfish
chown vmail:vmail /var/log/goldfish
我希望autoresponder.php
每五分钟执行一次,因此我创建一个由用户vmail
运行的cron作业:
crontab -u vmail -e
*/5 * * * * /usr/local/bin/autoresponder.php |
而已! 现在您可以在自动回复
表中创建自动回复
,例如使用phpMyAdmin或命令行,例如:
mysql -u root -p
USE mail;
INSERT INTO `autoresponder` (`email`, `descname`, `from`, `to`, `message`, `enabled`, `subject`) VALUES('sales@example.com', 'sales@example.com Autoresponder', '2009-06-08', '2009-06-12', 'I will be out the week of June 8 with very limited access to email.\r\nI will respond as soon as possible.\r\nThanks!\r\nFalko', 1, 'Out of Office');
quit;
这将为2009年6月8日至2000年6月12日期间有效的电子邮件地址sales@example.com
创建一个自动回复。由于自动回复cron作业只能每五分钟执行一次,所以自动回复消息不会立即发送,但是在电子邮件发送到sales@example.com
地址后五分钟内。
每当从sales@example.com
地址发送自动回复者时,应该在/ var / log /
goldfish日志文件中看到这样的内容
:
2009-06-08 07:00:01 Connection to database established successfully
2009-06-08 07:00:01 Database selected successfully
2009-06-08 07:00:01 Successfully updated database (disabled entries)
2009-06-08 07:00:01 Successfully updated database (enabled entries)
2009-06-08 07:00:01 Successfully fetched maildir directories
2009-06-08 07:00:01 Successfully fetched subject of sales@example.com
2009-06-08 07:00:01 Successfully fetched message of sales@example.com
2009-06-08 07:00:02 --------- End execution ------------