Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать / 18 сообщений из 18, страница 1 из 1
30.11.2005, 11:31
    #33407877
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Господа, может всеже найдется у кого функция чтобы текст письма выдрать
бо облазил все и вся, есть масса, но всеравно заголовки какието пропускают, т.е. не нашел ни одной чтобы чисто выдрала что надо.


O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
30.11.2005, 11:47
    #33407927
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
а чем PEAR::Mail::MimeDecode не устраивает?
-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
30.11.2005, 13:19
    #33408345
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
А нельзя ли пример, что то я не догоняю что тут к чему



O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
30.11.2005, 14:09
    #33408542
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
OracleА нельзя ли пример, что то я не догоняю что тут к чему



O*R*A*C*L*E
(Don't despair my little fried...)
в доке есть пример использование.
если к этому примеру добавить print_r + банальное знание PHP - сможешь сам решить свою проблему
...
Рейтинг: 0 / 0
30.11.2005, 14:29
    #33408604
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Оно то да, но вот если бы пример был ваш ответ был бы более полноценным.

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
30.11.2005, 15:00
    #33408696
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
OracleОно то да, но вот если бы пример был ваш ответ был бы более полноценным.

O*R*A*C*L*E
(Don't despair my little fried...)
Нафиг давать полноценный ответ леняям ?
...
Рейтинг: 0 / 0
30.11.2005, 15:02
    #33408708
.-.-.-.-.-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
.-.-.-.-.- OracleОно то да, но вот если бы пример был ваш ответ был бы более полноценным.

O*R*A*C*L*E
(Don't despair my little fried...)
Нафиг давать полноценный ответ леняям ?
леняям -> лентяям
...
Рейтинг: 0 / 0
30.11.2005, 15:06
    #33408725
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
На самом деле не лентяям а очень занятым людям

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
30.11.2005, 15:42
    #33408894
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Блин, писал я как то ... если найду код, скину сюда
-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
30.11.2005, 15:46
    #33408907
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Буду очень признателен, бо у меня есть, но я не могу просечь, то она нормально выдирает боди, то еще фигню сует туда какую то вот что у меня


$info = imap_fetchstructure($this->mbox, $id);
$attNames = array();
$attFiles = array();
$cnt = 1;
if (!is_array($info->parts))
{
$body = imap_fetchbody($this->mbox, $id, 1);
}
else
{
foreach ($info->parts as $part)
{
if ($part->disposition == 'ATTACHMENT')
{
$attNames[count($attNames)] = $part->parameters[0]->value;
$attFiles[count($attFiles)] = base64_decode(imap_fetchbody($this->mbox, $id, $cnt++));
}
else
{
$body = imap_fetchbody($this->mbox, $id, $cnt++);
}
}
}


O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
30.11.2005, 17:50
    #33409385
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
OracleНа самом деле не лентяям а очень занятым людям

O*R*A*C*L*E
(Don't despair my little fried...)
Ну пошли пальцы...
Остальные тут бездельники, видимо?...
Какова цена вопроса?
...
Рейтинг: 0 / 0
30.11.2005, 21:22
    #33409785
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
DocAl OracleНа самом деле не лентяям а очень занятым людям

O*R*A*C*L*E
(Don't despair my little fried...)
Ну пошли пальцы...
Остальные тут бездельники, видимо?...
Какова цена вопроса?

Большое человеческое спасибо, ну и конечно бутылка хорошего коньяка...
...
Рейтинг: 0 / 0
30.11.2005, 22:41
    #33409828
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Да только что заметил что это происходит только тогда когда письма посылаются из OutLook т.е. в режиме HTML, как это побороть друзья.


O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
01.12.2005, 01:17
    #33409937
g613
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Oracle DocAl OracleНа самом деле не лентяям а очень занятым людям

O*R*A*C*L*E
(Don't despair my little fried...)
Ну пошли пальцы...
Остальные тут бездельники, видимо?...
Какова цена вопроса?

Большое человеческое спасибо, ну и конечно бутылка хорошего коньяка...
.....во блин и каньяк как раз кончился и купить не где - так в чем вопрос ????...

...каньяк закончился млаха муха - мы пьем обычную бормотуху, слушая АлисУ....
...
Рейтинг: 0 / 0
01.12.2005, 12:00
    #33410644
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Да также ко всему вышесказанному вопрос про отображение русского языка, чтото траблы есть и с ним.

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
01.12.2005, 12:43
    #33410780
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Короче, вот файл. Это то что сохранилось. Я менял комп, поэтому проект потерял.
Писал что вроде почтового сервиса. Насколько я понял, этот кусок в силе отобразить только text/html, text/plain, alternative ... осталось распарсить multipart/related, multipart/mixed, digest. Читай спецификацию. Там этих контент-тайпов туева хуча.
Мне пришлось парсить каждый.
А их там было много ... Буду рад если он поможет хоть чем то.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
<?
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
	<title>Mime decoder</title>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
	<style type="text/css">
body, table {
margin: 1em;
background-color: #ffffff;
color: # 000000 ;
font-family: Verdana, Arial, Helvetica;
font-size: 9pt;
font-weight: normal;
font-style: normal;
}
pre {
font-size: 11pt;
}
</style>
</head>
<body>
<?php
mb_internal_encoding("windows-1251");
$default_encoding = "windows-1251";

function bs64 ($matches) {
$str = base64_decode($matches[ 2 ]);
$enc = $matches[ 1 ];
return iconv($enc, "windows-1251", $str);
}

function decodeBase64ToWin1251($string) {
$string = preg_replace_callback ("/\=\?(.*?)\?B\?(.*?)\?\=/is", "bs64", $string);
return $string;
}

function errorBox ($id) {
switch ($id) {
case  1  :
return "Ýòî ïèñüìî ñîäåðæèòü îøèáêó. Ïîæàëóéñòà, ïåðåøëèòå åãî àäìèíèñòðàòîðó";
}
}

function parseDigest ($mail) {

}


require_once 'Mail/mimeDecode.php';

$input = implode ("", file("mails_html.txt"));
$params['include_bodies'] = true;
$params['decode_bodies']  = true;
$params['decode_headers'] = false;
$params['input']          = $input;
$params['crlf']           = "\r\n";

$structure = Mail_mimeDecode::decode($params);
$parsed_success = false;
$message_body = "";
$_SESSION['attachments'] = array();
$inline_attachments = array();
echo "<b>From:</b> ".htmlspecialchars(decodeBase64ToWin1251($structure->headers['from']), ENT_QUOTES)."<br />\n";
echo "<b>To:</b> ".htmlspecialchars(decodeBase64ToWin1251($structure->headers['to']), ENT_QUOTES)."<br />\n";
echo "<b>Subject:</b> ".htmlspecialchars(decodeBase64ToWin1251($structure->headers['subject']), ENT_QUOTES)."<br />\n";
echo "<b>Date:</b> ".htmlspecialchars($structure->headers['date'])."<br />\n";

//find out top level content type

if ($structure->ctype_primary && $structure->ctype_secondary) 
 $contenttype_top = $structure->ctype_primary."/".$structure->ctype_secondary;
else 
 $contenttype_top = "text/plain";
echo "<b>Content type:</b> ".$contenttype_top;
echo "<hr />\n";

echo "<div style=\"border: 1px solid gray; width:  800 ; padding: 5px; overflow: auto;\">\n";

switch ($contenttype_top) {
 case 'text/plain' :
  if ($structure->ctype_parameters['charset'] && trim($structure->ctype_parameters['charset']) != "")
   $message_encoding = trim($structure->ctype_parameters['charset']);
  else $message_encoding = $default_encoding;
  
  if ($structure->body) $message_body = "<pre>".htmlspecialchars(iconv($message_encoding, "windows-1251", $structure->body))."</pre>";
  else echo errorBox( 1 );
 break; 
 
 case 'text/html' :
  if ($structure->body) $message_body = $structure->body;
  else echo errorBox( 1 );
 break;
 
 case 'multipart/alternative' :
  if ($structure->parts) {
    //find best part to be displayed
	$plainpart = - 1 ; $htmlpart = - 1 ;
	for ($i= 0 ; $i<count($structure->parts); $i++) {
	 $tmp = @$structure->parts[$i]->ctype_primary."/".$structure->parts[$i]->ctype_secondary;
	 if ($tmp == "text/plain" && $structure->parts[$i]->body) $plainpart = $i;
	 if ($tmp == "text/html" && $structure->parts[$i]->body) $htmlpart = $i;
	 }
	if (isset($_GET['text']) && $structure->parts[$plainpart]) {
	 if ($structure->parts[$plainpart]->ctype_parameters['charset'] && trim($structure->parts[$plainpart]->ctype_parameters['charset']) != "")
	  $message_encoding = trim($structure->parts[$plainpart]->ctype_parameters['charset']);
	 else $message_encoding = $default_encoding;
	 $message_body = "<pre>".htmlspecialchars(iconv($message_encoding, "windows-1251", $structure->parts[$plainpart]->body))."</pre>";
	 } 
	else {
	 if ($structure->parts[$htmlpart]->ctype_parameters['charset'] && trim($structure->parts[$htmlpart]->ctype_parameters['charset']) != "")
	  $message_encoding = trim($structure->parts[$htmlpart]->ctype_parameters['charset']);
	 else $message_encoding = $default_encoding;
	 $message_body = iconv($message_encoding, "windows-1251", $structure->parts[$htmlpart]->body);
	}
  }
  else echo errorBox( 1 );
 break;
 
 case 'multipart/mixed' :
//  echo count($structure->parts);
  for ($i= 0 ; $i<count($structure->parts); $i++) {
   if (@$structure->parts[$i]->disposition && @$structure->parts[$i]->disposition == "attachment") {
    $attachment['name'] = $structure->parts[$i]->d_parameters['filename'] or $structure->parts[$i]->ctype_parameters['name'] or "unknown_file_name.tmp";
	$attachment['partid'] = $i;
	$attachment['size'] = strlen ($structure->parts[$i]->body);
	$attachment['ctype'] = $structure->parts[$i]->headers['content-type'];
	$attachment['content'] = $structure->parts[$i]->body;
	$_SESSION['attachments'][] = $attachment;
	$attachment = null;
	}
   }
  
  
 break;
 
 default :
 echo errorBox( 1 );
 break;
}
//print_r($structure->parts[ 0 ]);
echo $message_body;
?>
</div>
</body>
</html>
-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
01.12.2005, 12:45
    #33410786
VERS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Код: plaintext
$input = implode ("", file("mails_html.txt"));
$input - это тело письма. Я для двелеопмента понаделал .txt файлов со всевозможными контентами. И мз аутлука отправлял, и с мейл.ру ...
-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
02.12.2005, 11:31
    #33413157
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
Спасибо большое буду разбираться, но коньячок за мной во всяком случае..

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]