Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Функции для приема почты


Автор: Borland_Delphi_6 11.1.2005, 20:28
САБЖ. Названия, можно примеры smile
Добавлено @ 20:29
ну и назначение соотв...

Автор: penizillin 11.1.2005, 20:31
php.net/imap

Автор: Mal Hack 11.1.2005, 20:31
imap_*();
Подключаемся к серверу, читаем мессаги...
http://php.net/imap_open
Я думаю сам разберешься.

Автор: Borland_Delphi_6 11.1.2005, 21:55
Mal Hack
Спасибо, кое-что действительно получилось. Но вот возникло два вопроса:
1. Ф-я imap_body возвращает текст без переноса строк, что для меня критично. Как это исправить?
2. Извлечь заголовок сообщения так и не удалось smile

Автор: Borland_Delphi_6 11.1.2005, 22:14
Так-с, с заголовком разобрались smile Также понял, что imap_body не катит (перечетавши описание smile ) Какую функцию использовать в этом случае?

Автор: Mal Hack 11.1.2005, 22:22
imap_bodystruct
imap_fetchbody()

А чем просто *body(); не устраивает? Есть там нету <br>, то должны быть \n вот их и надо заменять.

Автор: Borland_Delphi_6 11.1.2005, 22:48
Там был такой пример:
function retrieve_message($mbox, $messageid)
{
$message = array();

$header = imap_header($mbox, $messageid);
$structure = imap_fetchstructure($mbox, $messageid);

$message['subject'] = $header->subject;
$message['fromaddress'] = $header->fromaddress;
$message['toaddress'] = $header->toaddress;
$message['ccaddress'] = $header->ccaddress;
$message['date'] = $header->date;

if (check_type($structure))
{
$message['body'] = imap_fetchbody($mbox,$messageid,"1"); ## GET THE BODY OF MULTI-PART MESSAGE
if(!$message['body']) {$message['body'] = '[NO TEXT ENTERED INTO THE MESSAGE]\n\n';}
}
else
{
$message['body'] = imap_body($mbox, $messageid);
if(!$message['body']) {$message['body'] = '[NO TEXT ENTERED INTO THE MESSAGE]\n\n';}
}

return $message;
}

function check_type($structure) ## CHECK THE TYPE
{
if($structure->type == 1)
{
return(true); ## YES THIS IS A MULTI-PART MESSAGE
}
else
{
return(false); ## NO THIS IS NOT A MULTI-PART MESSAGE
}
}

$some = retrieve_message($mail, 1);
echo $some['subject']."<br>";
echo $some['body'];

Нифигачит smile Отправляю мыло на локалхост при помощи The Bat

Автор: Borland_Delphi_6 11.1.2005, 23:03
[POSTED_FROM_OFFLINE]
А ларчик-то просто открывался: nl2br() smile
[/POSTED_FROM_OFFLINE]

Автор: Mal Hack 11.1.2005, 23:41
Цитата(Borland_Delphi_6 @ 11.1.2005, 22:48)
Нифигачит smile Отправляю мыло на локалхост при помощи The Bat

Чуть по конкретней...

Цитата(Borland_Delphi_6 @ 11.1.2005, 23:03)
А ларчик-то просто открывался: nl2br() smile

Т.е. проблему решил, как я понимаю?

Автор: Borland_Delphi_6 13.1.2005, 20:45
Mal Hack
Да, все ок, сенкс! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)