писем выдернуть значения (письма отправляет amazon ses робот, в теле письма кусок json как plain text)
мне буквально нужно из тела выдёргивать след кусок == {"emailAddress":"some@mail.ru","action":"failed",
код =
import imaplib
import re
from email.parser import HeaderParser
imap = imaplib.IMAP4_SSL('imap.yandex.ru')
imap.login('login', 'password')
imap.select('fromrobot')
resp, data = imap.uid('search', None, "ALL")
uids = data[0].split()
mailparser = HeaderParser()
imap.fetch(b'1', '(RFC822)')
## выдаёт целиком письмо (заголовки, служебная инфа, тело)
search = link_pattern.search(imap.fetch(b'1', '(RFC822)'))
>>> search = link_pattern.search(imap.fetch(b'1', '(RFC822)'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected string or bytes-like object
>>>
raw_email_string = imap.fetch(b'1', '(RFC822)')
raw_email_string = raw_email_string.decode('utf-8')
>>> raw_email_string = raw_email_string.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'decode'
могу дать за вкусняшку свой кусок едрития для Imap долго с ним возился ох как долго если интересно пиши в личку )
Ну у тебя raw_email_string это тапл, глянь что там
Да там куча мелочей, очень много, особенно поиск... Мозги выльются, проще уже даже через веб запросы письма получать)
ну, в этом кортеже - 1. заголовки 2. служебная инфа 3. тело письма
Да сиди с дебагером и докой
Ну так ты декодь не тапл, а ту часть, которая нужна
Я просидел, курву тучу времени потратил но выепал imap и заставил работать как надо по поиску в той папке которой нужно)
Юзай SMTP Еби лучше его, у него жопа лучше
Ахаха ну ты и смешной юзать smtp когда там вроде как доступа как такого нету в отличии imap если я не ошибаюсь
Обсуждают сегодня