Отправить ответ на тему электронной почты с помощью Gmail API - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь ответить на электронное письмо, которое я отправил самому себе, тема сообщения - «Функция тестирования» У меня есть функция subject (), которая возвращает subject, message_id и thread_id ниже («Функция тестирования», 'DEFxmu7HPSRAti50ki2i6PK_DOOPLwMm5fiR+_dPkcOR7mep7hQ@mail.gmail.com', '166e2507fc661924')

Мой полный код:

def create_message(sender, to, message_id, thread_id, subject, message_text):
    message = MIMEText(message_text)
    message['from'] = sender
    message['to'] = to
    message['In-Reply-To'] = message_id
    message['References'] = message_id
    message['threadId'] = thread_id
    message['subject'] = subject

    return {'raw': base64.urlsafe_b64encode(message.as_string().encode()).decode()}

def send_message(service, user_id, message):
    message = (service.users().messages().send(userId="me", 
    body=message).execute())
    print('Message Id: %s' % message['id'])
    return message

def send_email(orders):
    SCOPES = 'https://mail.google.com/'
    credentials = auth.get_user_oauth2_credentials(scopes=SCOPES, 
                                                   client_id='xxxxx', 
                                                   client_secret='xxxxxx')
    service = discovery.build('gmail','v1', credentials=credentials)
    message_text = orders[0]
    created_message = create_message('th14@gmail.com','th14@gmail.com', 
        subject()[1],subject()[2], subject()[0], message_text)
    send_message(service, 'me', created_message)

send_email(['Msg Received'])

Он отправляет электронное письмо, но не в нужную ветку, просто отправляет новое электронное письмо.

1 Ответ

0 голосов
/ 05 ноября 2018

Исходя из этой документации , вы можете добавить сообщение в поток как часть вставки или отправки сообщения.

Чтобы быть частью цепочки, сообщение или черновик должны соответствовать следующим критериям:

  1. Запрашиваемый threadId должен быть указан в Message или Draft.Message, который вы предоставляете вместе с вашим запросом.
  2. Заголовки References и In-Reply-To должны быть установлены в соответствии со стандартом RFC 2822 .
  3. Заголовки Subject должны совпадать.

Проверьте эту ссылку для дополнительной ссылки: Как отправить ответ через Gmail API

...