2013-06-11 5 views
2

У меня есть веб-сайт, размещенный с веб-хостом cPanel.PHP + почтовый сервер

Я ищу, чтобы PHP-скрипт запускался каждый раз, когда я получаю новое электронное письмо по адресу [email protected] Скрипт, который я надеялся запустить, обновит некоторые вары в базе данных sql.

Я знаю, как выполнить все задачи с PHP, единственной частью, которую я пытаюсь выяснить, является то, как сказать, что мой веб-сервер запускает скрипт при получении нового письма.

в настоящее время работает cron job и предпочел бы , чтобы не запускать скрипт каждый мин. и только при необходимости.

+1

Вы можете настроить почтовую службу для запуска скрипта каждый раз, когда приходит почта. Как точно зависит от выполняемой вами программы (например, postfix, procmail, ...) –

ответ

2

На большинстве хостов cPanel вы можете настроить переадресацию на отправку электронной почты сценарию при его получении. До тех пор, как ваша электронная почта управляется на тот же счет Cpanel, он будет работать большой ...

При создании экспедитора, вы будете устанавливать вперед обращаться как |/home/username/path/to/script.php

Тогда первое, что вам нужно сделать в скрипте получить электронную почту от stdin:

//Receive the email from stdin ... 
$fd = fopen("php://stdin","r"); 

$data = ''; 
while(!feof($fd)){ 
    $data .= fread($fd,1024); 
} 

fclose($fd); 

//process email data ... 

Я сделал это по ряду CPanel хозяев с большим успехом.

1

Если у вас есть доступ к вашей конфигурации MTA (Mail Transfer Agent), вы можете настроить сценарий, который запускается при поступлении новой почты. Как это делается, зависит от вашего MTA.

Кроме того, вы можете использовать procmail или файл .forward и установить любой из них для выполнения сценария при получении электронной почты по желаемому адресу.

Смежные вопросы