отправка Gmail в Latex с использованием Python Gmail API - PullRequest
0 голосов
/ 29 февраля 2020

Я использую Gmail API в Python и пытаюсь отправить письмо с латексом в нем. Я знаю о расширениях и дополнения, которые уже позволяют отправлять сообщения Gmail с использованием Latex. Моя ошибка не в коде python, а в письме. Письмо не содержит тела и вложения что говорит "noname", все остальные поля заполнены правильно. В Интернете я не нашел ничего похожего на мою проблему. Насколько я понимаю, я могу использовать неправильный тип пантомимы или Gmail не понимает, что я поставил в тело письма. 1. Я подтвердил, что электронное письмо было отправлено с простым текстом перед использованием любого латекса. 2. проверенный получатель получил сообщение 3. проверенное сообщение отправлено и получено с использованием латекса, но имеет вложение «noname». 4. пробный текст / html, application / x-latex, текст / обычный, но html и latex не работают. 5. json и файл учетных данных постоянно обновляются 6. Я пробовал sympy, но тоже не очень полезно:

'''
    func = sp.Function('func')
    x = sp.Symbol('x')
    func = sp.sin(x)
    message_text = func
'''

вот фрагменты моего кода: Создайте сообщение для электронной почты.

Args: sender: адрес электронной почты отправителя. to: адрес электронной почты получателя. subject: тема сообщения электронной почты. message_text: текст сообщения электронной почты.

Возвращает: Объект, содержащий объект электронной почты в кодировке base64url.

'''
def create_message(sender, to, subject, message_text):
  message_text = "$x^2"
  #message = MIMEText(message_text)
  message = MIMEText(message_text, 'application/x-latex')
  message['to'] = to
  message['from'] = sender
  message['subject'] = subject
  return {'raw': base64.urlsafe_b64encode(message.as_string().encode()).decode()}#changed as_string() to as_string().encode()).decode
'''

Отправить сообщение электронной почты.

Args: service: авторизованный экземпляр службы API Gmail. user_id: адрес электронной почты пользователя. Специальное значение «я» может использоваться для указания аутентифицированного пользователя. сообщение: сообщение для отправки.

Возвраты: отправленное сообщение.

 '''
def send_message(service, user_id, message):

  try:
    message = (service.users().messages().send(userId=user_id, body=message)
               .execute())
    print ('Message Id: %s' % message['id'])
    return message
  except errors.HttpError as error:
    print ('An error occurred: %s' % error)

'''

электронная почта в gmail с приложением «noname»

1 Ответ

0 голосов
/ 19 марта 2020

Пояснение

Согласно документации ваш тип MIME application/x-latex интерпретируется API как тип MIME вложения.

В приведенной выше ссылке вы можете увидеть, что Google распознает как это. Имейте в виду, что он упоминает, что для тех, кто не распознается, App Engine назначит тип MIME application/octet-stream.

По этой причине, когда вы отправляете сообщение без указания типа MIME, пользователь получит электронное письмо с $x^2 в теле, а при указании использования латекса пользователь получит вложение без имени указано, но с содержанием $x^2.

...