| |
|
|
| | Обрабатываю почту скриптом с использованием расширения IMAP:
<?php
header('Content-Type: text/plain');
header("Charset=koi8r");
header('Content-Transfer-Encoding: base64');
$mbox = imap_open("{IMAP.mail.ru:143}", "mymail-1@bk.ru", "password");
if(!$mbox) exit("Ошибка соединения с сервером: ".imap_last_error());
$check = imap_mailboxmsginfo($mbox);
if ($check)
{
echo "Дата: ".$check->Date."\r\n";
echo "Mailbox: ".$check->Mailbox."\r\n" ;
echo "Сообщения: ".$check->Nmsgs."\r\n" ;
echo "Recent: ".$check->Recent."\r\n" ;
echo "Непрочитанные: ".$check->Unread."\r\n" ;
echo "Удаленные: ".$check->Deleted."\r\n" ;
echo "Размер: ".$check->Size."\r\n" ;
}
$s=$check->Nmsgs;
for($i=$s; $i > 0; $i--)
{
$rb=imap_fetchbody($mbox,$i,"0");
$headers.="From: mymail-2@bk.ru\n";
$headers.="Content-type: text/plain; charset=windows-1251\n";
$members = array('mymail-3@host.ru');
$msg = "Мой шаблон";
mail($members[0],"Тема","$msg \r\n \r\n $rb","$headers");
imap_delete($mbox,$i);
imap_expunge($mbox);
}
echo $i;
imap_close($mbox);
?>
|
Все письма, на которые должна сработать mail() имеют в своей теме однотипную фразу, скажем: "Письмо от юзера №.."
Подскажите, как мне в рамках данного кода при получении письма с темой не содержащей такой фразы, отправлять письмо с иным текстом, а не с текстом шаблона из $msg?
Конретнее- как произвести анализ темы каждого полученного письма на наличие определенной фразы, внутри созданного цикла? | |
| |
|
|
| |
|
|
| |
для: loneliness
(03.01.2007 в 15:34)
| | | Чтобы достучаться до темы письма, вам следует использовать функцию imap_headerinfo()
<?php
$mbox = imap_open("{localhost}", "igor@softtime.ru", "password");
if(!$mbox) exit("Ошибка соединения с сервером: " . imap_last_error());
echo "Число сообщений - ".imap_num_msg($mbox)."<br>";
for($i = 1; $i <= imap_num_msg($mbox); $i++)
{
$obj = imap_headerinfo($mbox, $i);
$arr = imap_mime_header_decode($obj->Subject);
echo "<pre>";
print_r($arr);
echo "</pre>";
}
imap_close($mbox);
?>
|
Заголовок каждого письма может состоять из нескольких кусков, если у них кодировка разная окажется - их придётся склееть. | |
| |
|
|
| |
|
|
| |
для: cheops
(03.01.2007 в 15:59)
| | | Вот пример, что выводит приведенный Вами скрипт в браузере:
Число сообщений - 2
Array
(
[0] => stdClass Object
(
[charset] => windows-1251
[text] => Сообщение от пользователя
)
[1] => stdClass Object
(
[charset] => default
[text] => : 4677301
)
)
Array
(
[0] => stdClass Object
(
[charset] => windows-1251
[text] => Сообщение от пользователя
)
[1] => stdClass Object
(
[charset] => default
[text] => : 4678835
)
)
Если несложно, приведите пример как мне все это обработать в цикле для каждого сообщения так, чтобы если тема не такая:
[text] => Сообщение от пользователя
то выполнялось иное условие?
Или дайте ссылку на подобную обработку в ином скрипте, там соображу как это адаптировать себе. Спасибо заранее. | |
| |
|
|
| |
|
|
| |
для: Loneliness
(03.01.2007 в 18:01)
| | | Все, отбой. Допетрил методом научного тыка. Благодарю за помощь. Без Вас еще долго думал бы, что да как.
P.S Реально, у Вас лучший форум в Рунете, которы можно найти по теме начинающему и не очень. Спасибо. | |
| |
|
|