PHP 스크립트 · 3 min read · Dec 30, 2025
금붕어, PHP 자동 응답기 스크립트
금붕어, PHP 자동 응답기 스크립트 - HowtoForge “Postfix, Courier, MySQL 및 SquirrelMail을 이용한 가상 사용자 및 도메인” 설정을 위한
버전 1.0
저자: Falko Timme
금붕어는 Postfix를 위한 꽤 간단한 자동 응답기 스크립트입니다 (PHP로 작성됨). 이는 크론잡을 통해 시작할 수 있는 단 하나의 PHP 파일로 구성되어 있습니다. 이는 우리의 “Postfix, Courier, MySQL 및 SquirrelMail을 이용한 가상 사용자 및 도메인” 튜토리얼과 함께 작동합니다 (다른 설정, 특히 MySQL 데이터베이스를 사용하지 않는 Postfix 설정에는 사용할 수 없습니다).
이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!
1 사전 참고
저는 당신이 이미 작동하는 “Postfix, Courier, MySQL 및 SquirrelMail을 이용한 가상 사용자 및 도메인” 설정을 가지고 있다고 가정합니다, 예를 들어:
- 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 -pUSE 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에 다운로드하고 금붕어 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를 users로 교체했는지 확인하십시오:
vi autoresponder.php| [...] ###################################### # 구성 # ###################################### /* 일반 */ $conf['cycle'] = 5 * 60; /* 로깅 */ $conf['log_file_path'] = "/var/log/goldfish"; $conf['write_log'] = true; /* 데이터베이스 정보 */ $conf['mysql_host'] = "localhost"; $conf['mysql_user'] = "mail_admin"; $conf['mysql_password'] = "mail_admin_password"; $conf['mysql_database'] = "mail"; /* 데이터베이스 쿼리 */ # 이 쿼리는 해당하는 메일디렉토리의 경로(`path`)를 반환해야 합니다. # 이메일 주소 %m $conf['q_mailbox_path'] = "SELECT CONCAT('/home/vmail/', SUBSTRING_INDEX(email,'@',-1), '/', SUBSTRING_INDEX(email,'@',1), '/') as `path` FROM users WHERE `email` = '%m'"; # 이 쿼리는 autoresponder 테이블에서 다음 필드를 반환해야 합니다: `from`, `to`, `email`, `message` where `enabled` = 2 $conf['q_forwardings'] = "SELECT * FROM `autoresponder` WHERE `enabled` = 1"; # 이 쿼리는 과거에 종료된 모든 autoresponder 항목을 비활성화해야 합니다. $conf['q_disable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 0 WHERE `to` < CURDATE();"; # 이 쿼리는 오늘 시작하는 모든 autoresponder 항목을 활성화해야 합니다. $conf['q_enable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 1 WHERE `from` = CURDATE();"; # 이 쿼리는 이메일 %m으로 식별된 autoresponder 항목의 메시지를 반환해야 합니다. $conf['q_messages'] = "SELECT `message` FROM `autoresponder` WHERE `email` = '%m'"; # 이 쿼리는 이메일 %m으로 식별된 autoresponder 항목의 제목을 반환해야 합니다. $conf['q_subject'] = "SELECT `subject` FROM `autoresponder` WHERE `email` = '%m'"; [...] |
그 후 autoresponder.php를 /usr/local/bin으로 이동하고, 사용자 및 그룹 vmail의 소유로 설정하고, 실행 가능하게 만듭니다:
mv autoresponder.php /usr/local/binchown 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가 5분마다 실행되기를 원하므로, 이를 위해 vmail 사용자에 의해 실행될 크론 작업을 생성합니다:
crontab -u vmail -e| */5 * * * * /usr/local/bin/autoresponder.php |
그게 다입니다! 이제 autoresponder 테이블에 자동 응답기를 생성할 수 있습니다, 예를 들어 phpMyAdmin이나 명령줄에서 다음과 같이:
mysql -u root -pUSE mail;INSERT INTO `autoresponder` (`email`, `descname`, `from`, `to`, `message`, `enabled`, `subject`) VALUES('[email protected]', '[email protected] Autoresponder', '2009-06-08', '2009-06-12', '저는 6월 8일 주에 이메일 접근이 매우 제한적입니다.
가능한 한 빨리 응답하겠습니다.
감사합니다!
Falko', 1, '부재중');quit;이것은 이메일 주소 [email protected]에 대한 자동 응답기를 생성하며, 2009년 6월 8일부터 2009년 6월 12일까지 활성화됩니다. 자동 응답기 크론 작업은 5분마다만 실행되므로, 자동 응답 메시지는 즉시 전송되지 않고 [email protected] 주소로 이메일이 전송된 후 5분 이내에 전송됩니다.
자동 응답기가 [email protected] 주소에서 전송될 때마다 /var/log/goldfish 로그 파일에서 다음과 같은 내용을 볼 수 있어야 합니다:
2009-06-08 07:00:01 데이터베이스에 성공적으로 연결됨
2009-06-08 07:00:01 데이터베이스가 성공적으로 선택됨
2009-06-08 07:00:01 데이터베이스가 성공적으로 업데이트됨 (비활성 항목)
2009-06-08 07:00:01 데이터베이스가 성공적으로 업데이트됨 (활성 항목)
2009-06-08 07:00:01 메일디렉토리 디렉토리가 성공적으로 가져와짐
2009-06-08 07:00:01 [email protected]의 제목이 성공적으로 가져와짐
2009-06-08 07:00:01 [email protected]의 메시지가 성공적으로 가져와짐
2009-06-08 07:00:02 --------- 실행 종료 ------------3 링크
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.