Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Анализ темы почтового письма
 
 автор: loneliness   (03.01.2007 в 15:34)   письмо автору
 
 

Обрабатываю почту скриптом с использованием расширения 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?
Конретнее- как произвести анализ темы каждого полученного письма на наличие определенной фразы, внутри созданного цикла?

   
 
 автор: cheops   (03.01.2007 в 15:59)   письмо автору
 
   для: 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);
?>

Заголовок каждого письма может состоять из нескольких кусков, если у них кодировка разная окажется - их придётся склееть.

   
 
 автор: Loneliness   (03.01.2007 в 18:01)   письмо автору
 
   для: 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:59)   письмо автору
 
   для: Loneliness   (03.01.2007 в 18:01)
 

Все, отбой. Допетрил методом научного тыка. Благодарю за помощь. Без Вас еще долго думал бы, что да как.

P.S Реально, у Вас лучший форум в Рунете, которы можно найти по теме начинающему и не очень. Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования