Да, вы можете это сделать. Я далек от эксперта, но я сделал это успешно, и вот что я понимаю.
Ключевыми словами, которые вы ищете, являются 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()
результатов. Затем найдите свою строку. Если найдено, запустите свою функцию.
Чтобы проверить, получили ли вы почту, вы можете опросить свой почтовый ящик через определенные промежутки времени.