Нужно достать вложение из письма Gmail

12
NEOmancer
На сайте с 06.07.2007
Offline
80
2186

Прикрутил к сайту возможность импорта вложений из GMail. Нужно было вытягивать файлы форматов pdf и doc. Я сделал через функции imap (PHP) у меня все работает. Когда заказчик тестирует - отправляет письмо с вложением через какой-то клиент Mac. И странность заключается в том, что его письма с вложениями в аккаунте Gmail не помечаются "скрепками". Просто когда заходишь в письмо - там есть ссылки на скачивание этих файлов. Соответственно и скрипты не видят что эти файлы attachments. Что это может быть? У меня есть несколько подозрений, но хотел бы услышать людей, которые ранее сталкивались с подобным.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1
там есть ссылки на скачивание этих файлов.

Откуда скачивание идёт?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
NEOmancer
На сайте с 06.07.2007
Offline
80
#2

отсюда https://mail.google.com/mail/?ui=2&ik=97a3f6b49c&view=att&th=13fce5753a9f8704&attid=0.1.1&disp=safe&zw

Уточню: он отправляет из gmail аккаунта в gmail аккаунт через клиент Mac. Я ранее слышал что Mac как-то по особенному генерирует attachments, но сам с этим столкнулся впервые

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3
NEOmancer:
отсюда https://mail.google.com/mail/?ui=2&ik=97a3f6b49c&view=att&th=13fce5753a9f8704&attid=0.1.1&disp=safe&zw

Уточню: он отправляет из gmail аккаунта в gmail аккаунт через клиент Mac. Я ранее слышал что Mac как-то по особенному генерирует attachments, но сам с этим столкнулся впервые

Из текста письма не получается выдрать ссылку и скачать?

NEOmancer
На сайте с 06.07.2007
Offline
80
#4

нет, что самое интересное в самом теле письма идет текст сообщения, потом:

-------------------------------------------------------------------------------

--Apple-Mail=_443AFA57-6079-4C02-958D-9E31BF8C0229

Content-Type: multipart/mixed;

boundary="Apple-Mail=_86BA79C9-6D68-448F-BFA5-C526890F4DFC"

--Apple-Mail=_86BA79C9-6D68-448F-BFA5-C526890F4DFC

Content-Transfer-Encoding: 7bit

Content-Type: text/html;

charset=us-ascii

--Apple-Mail=_86BA79C9-6D68-448F-BFA5-C526890F4DFC

Content-Disposition: inline;

filename=16.pdf

Content-Type: application/pdf;

name="16.pdf"

Content-Transfer-Encoding: base64

-------------------------------------------------------------------------------

а потом как я понимаю само тело PDF закодированное в base64

Но брать парсить тело письма, вырезать из него участок, в котором закодировано само тело pdf считаю геморным и совсем не элегантным. Должны же быть механизмы, позволяющие доставать attachments из mac-писем.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5
какой-то клиент Mac

А кому он нужен? Чисто, что клиент выделывается и мол, у меня тут мак, у меня тут какое-то хрено программа и не работает. Может быть это вопросы к разработчиком к этой хрено программы, с чего то они вдруг берут и в тело письма вставляют прикреплённый файл?

[umka]
На сайте с 25.05.2008
Offline
456
#6

Определяйте аттач не по "Content-Disposition", потому что он может быть, как в данном случае, "inline". А определяйте по наличию "filename=" или "name=" в Content-Type

LEOnidUKG:
с чего то они вдруг берут и в тело письма вставляют прикреплённый файл?

Аттач может отображаться внутри письма.

Например, если это html-письмо с картинками, которые должны отображаться непосредственно в клиенте.

Маковский клиент показывает прицепленные pdf-ы прямо в теле письма. Видимо, считает, что остальные клиенты тоже должны это уметь, и отправляет их с "Content-Disposition: inline"

Лог в помощь!
IL
На сайте с 20.04.2007
Offline
435
#7
NEOmancer:
Я сделал через функции imap (PHP) у меня все работает. Когда заказчик тестирует - отправляет письмо с вложением через какой-то клиент Mac.

А что imap_fetchstructure + imap_fetchbody/imap_bodystruct говорят? Они наверняка этот "инлайн аттачмент" видеть должны.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#8
Маковский клиент показывает прицепленные pdf-ы прямо в теле письма.

ИМХО это тупо :)

Хотя наверное эту функцию они как "фичу" применяли.

NEOmancer
На сайте с 06.07.2007
Offline
80
#9

теперь при обращении к gmail другой бок, imap_open возвращает ответ

------------------------------------------------------------------------

Array ( [0] => [ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure) [1] =>

Array ( [0] => [ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure) [2] => [ALERT] Please log in

Array ( [0] => via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure) [3] => Too many login failures ) can't connect: 1

---------------------------------------------------------------------------------

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#10
теперь при обращении к gmail другой бок

Вам должно прийти письмо, что кто-то лезит к вам на почту и потребуют поменять пароль на учётку.

Я это уже проходил к автопостингом G+

50 раз подтверждал, что запросы идут с нужного мне IP и всё ОК.

ПЛЕВАТЬ им на свою же систему, требуют сменить пароль. Пока не сменишь в учётку не попадёшь.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий