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


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



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



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

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

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

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

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


$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
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
    #33409385
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OracleНа самом деле не лентяям а очень занятым людям

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

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

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


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

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

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

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

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
    #33410780
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, вот файл. Это то что сохранилось. Я менял комп, поэтому проект потерял.
Писал что вроде почтового сервиса. Насколько я понял, этот кусок в силе отобразить только 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
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
    #33410786
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
$input = implode ("", file("mails_html.txt"));
$input - это тело письма. Я для двелеопмента понаделал .txt файлов со всевозможными контентами. И мз аутлука отправлял, и с мейл.ру ...
-------------------------------
www.free-lancer.ru
...
Рейтинг: 0 / 0
(PHP) Господа, может всеже найдется у кого функция чтобы текст письма выдрать
    #33413157
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое буду разбираться, но коньячок за мной во всяком случае..

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


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