paveluho
@paveluho

Как и чем разобрать email — формат?

Здравствуйте!

Получаю значит почту imap с яндекса, т.е. со своего почтового ящика на яндексе. Часть писем приходит интересным для меня образом вот в таком формате:

----ALT--3qTFCBd0ekkfmpv0s6C69hoX0USbWYVW1512581220
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

CgoK

----ALT--3qTFCBd0ekkfmpv0s6C69hoX0USbWYVW1512581220
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

CjxIVE1MPjxCT0RZPjxicj48YnI+PGJyPjwvQk9EWT48L0hUTUw+Cg==

----ALT--3qTFCBd0ekkfmpv0s6C69hoX0USbWYVW1512581220--

Чем это можно раскодировать?

Использую функцию разбора imap.


switch ((int)$encoding) {
# 7BIT
case 0:
$body = $msg_body;
break;
# 8BIT
case 1:
$body = imap_8bit($msg_body);
break;
# BINARY
case 2:
$body = imap_binary($msg_body);
break;
# BASE64
case 3:
$body = imap_base64($msg_body);
break;
# QUOTED-PRINTABLE
case 4:
$body = imap_qprint($msg_body);
break;
# OTHER
case 5:
$body = $msg_body;
break;
# UNKNOWN
default:
$body = $msg_body;
break;
}
return $body;


в цикле значит разбираем вот так:


$structure = imap_fetchstructure($connection, $num);
$msg = imap_fetchbody($connection, $num, 1, FT_PEEK);


FT_PEEK - чтобы не читал сообщения в почте )))

в итоге на выходе я получаю письмо не раскодированное imap_fetchbody и понять нимогу что прикрутить надо. Вручную разобрать - это мне кажется не совсем правильно, извлекая base64 из письма (тела), которое не понятно как приходит.

imap_fetchbody - извлекает часть (кусок) письма.

UPD:
добрался до скрипта... решил проблему!

Все оказалось дело не в бобине... дело было в проводах. Итак, данный формат умеет разбирать imap php, но его надо нормально скормить. Что надо сделать?
- Смотрим какую часть тела письма нам надо получить, imap_fetchbody, первую часть, либо же 1.1 ... не трудно будет написать код для получения письма.
Почему именно так? идем в описания структуры писем, читаем (ссылку ниже оставил в коментах). Нужны будут две проверки, дальше разберетесь...
  • Вопрос задан
  • 758 просмотров
Пригласить эксперта
Ответы на вопрос 1
edli007
@edli007
full stack, team lead
Не специалист, но возможно эта строчка ключ к разгадке
CjxIVE1MPjxCT0RZPjxicj48YnI+PGJyPjwvQk9EWT48L0hUTUw+Cg==

это base64, тут написано

<HTML><BODY><br><br><br></BODY></HTML>
Остальное фигня какаято, возможно ключи какието или кривая кодировка, не большой специалист по письмам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы