2011-01-14 5 views
1

Хотел узнать, можно ли его вызывать функции через почту с помощью PHP.Функции вызова по почте

Для примера. Предположим, у меня есть приложение, подобное ebay, и настроил для него учетную запись электронной почты. Поэтому, когда пользователь отправляет сообщение с текстом сообщения со словом «iPod» - сразу же будет запущена функция в моем приложении, которая будет отправлять спецификации iPod обратно пользователю.

Любое приблизительное представление о том, как я могу достичь этого?

ОБНОВЛЕНИЕ: Отправка почты назад не является проблемой, которая может быть легко достигнута. Я не могу понять, как сделать первую часть. Откуда я знаю, что я получил почту, это то, за чем я застрял.

ответ

0

Насколько я знаю, theres нет вне коробки для этого. вам нужно будет написать сценарий, который подключается к вашему почтовому серверу и загружает все новые письма (это определенно сделано кем-то еще раньше, попробуйте спросить Google). после этого проанализируйте письма, найдите ключевые слова, такие как «iPod», и отправьте письмо обратно пользователю (basicalls с использованием mail, но tjere - это много лучших пакетов (смотрите «sendmail»), лучше, если вы отправляете много писем (РНР почта() соединяет и разъединяет к почтовому серверу для каждый почты пересылаются))

1

обычным решением является использование такого инструмента, как procmail в сочетании с сервером SMTP условно фильтровать входящий сообщений в ваш скрипт.

Например, это подталкивает всю электронную почту под определенным размером в программу spamc.

:0fw 
* < 512000 
| spamc 
0

Да, вы можете это сделать. Я далек от эксперта, но я сделал это успешно, и вот что я понимаю.

Ключевыми словами, которые вы ищете, являются IMAP и POP. Почти все поставщики электронной почты имеют POP, и большинство из них также имеют IMAP. Это просто способы потоковой передачи сообщений в вашем почтовом ящике в сценарий. IMAP, по-видимому, лучше.

Чтобы использовать протокол IMAP в PHP

  • сначала подтвердить ваш провайдер поддерживает это
  • убедитесь, что он включен в настройках аккаунта
  • в php.ini, раскомментировать расширение IMap
  • также раскомментировать расширение SSL ,

Затем вы можете использовать эту строку примера, чтобы установить соединение. Это для GMail, но это не так уж сильно отличается для других провайдеров:

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; 
$username = '[email protected]'; 
$password = 'yourpassword'; 

//========== Open mails in inbox as imap datastream 
$imapStream = imap_open($hostname,$username,$password) 
    or die('Cannot connect to gmail:<br />'.imap_last_error()); 

Это самая трудная часть, но это не так уж плохо.

Затем вы можете использовать функцию imap_search() для фильтрации сообщений из потока. Набор PHP imap-функций довольно прост в использовании, но вам потребуется несколько часов или дней, чтобы все понять (более или менее).

Чтобы извлечь тело сообщения, например, вы хотите использовать

imap_fetchbody($imapStream,$i,1.1) 

на приведенном выше коде, где $i номер сообщения из ваших imap_search() результатов. Затем найдите свою строку. Если найдено, запустите свою функцию.

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

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