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 ... не трудно будет написать код для получения письма.
Почему именно так? идем в описания структуры писем, читаем (ссылку ниже оставил в коментах). Нужны будут две проверки, дальше разберетесь...
  • Вопрос задан
  • 743 просмотра
Пригласить эксперта
Ответы на вопрос 1
edli007
@edli007
full stack, team lead
Не специалист, но возможно эта строчка ключ к разгадке
CjxIVE1MPjxCT0RZPjxicj48YnI+PGJyPjwvQk9EWT48L0hUTUw+Cg==

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

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

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект