Как использовать API Gmail Python для (эффективной) вставки гиперссылки в существующее электронное письмо (с помощью фунPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать API Gmail Python для (эффективной) вставки гиперссылки в существующее электронное письмо (с помощью фун

Сообщение Anonymous »

Я пытаюсь написать сценарий, позволяющий эффективно добавлять гиперссылку в существующее электронное письмо. У меня уже есть аналогичный скрипт, который эффективно уменьшает размеры больших изображений в существующих электронных письмах, чтобы сэкономить место.
Я редактирую электронное письмо, получая его и редактируя. полученную копию, записывая ее обратно с тем же идентификатором потока (хотя Gmail назначает новый идентификатор) и удаляя электронное письмо с исходным идентификатором, поэтому остается только измененная копия в том же месте, где находился оригинал. .
Но когда я пытаюсь добавить гиперссылку и просмотреть конечный результат в веб-интерфейсе Gmail, она неактивна, и в функции gmail show original я вижу следующее:
>

Код: Выделить всё

[url=http://testurl.com]
[code]fromg = service.users().messages().get(userId='me', id=response['id'], format='raw').execute()
unenc = base64.urlsafe_b64decode(fromg['raw']).decode('utf-8')
gmmsg = email.message_from_string(unenc)
for part in gmmsg.walk():
    if part.get_content_type() == 'text/html':
        print(part)
На этом этапе, после записи копии на сервер и получения этого электронного письма через API, тег привязки в печатном тексте включает содержимое href='http://testurl.com '. Но когда в веб-интерфейсе Gmail просматривается электронное письмо, текст ссылки («текст testurl»), как упоминалось выше, просто отображается как обычный текст. При просмотре источника через show original href отсутствует знак равенства, а при пересылке электронного письма, просмотр источника сообщения в Thunderbird и b64, декодирование закодированного сегмента text/html показывает только текст, заключенный в теги привязки («текст testurl») - сами теги привязки полностью отсутствуют (предположительно, удалены Gmail из-за неправильного формирования атрибута href?).
Я также пробовал без использования BeautifulSoup (вставка тегов привязки вручную) на случай, если он вводил что-то странное, но это не имело никакого значения.
Если кто-нибудь знает, что заставляет Gmail искажать эти сообщения при просмотре или пересылке из веб-интерфейса Gmail. (но не делать этого, когда к сообщению обращаются через API), вся помощь будет очень признательна.

Изменить: проблема не очевидна при простом html, составленное в веб-интерфейсе Gmail — к этому электронному письму может быть добавлена ​​ссылка с помощью приведенного выше кода без искажений. Однако более сложные электронные письма в формате HTML, полученные от наших партнеров (которые я изначально тестировал), действительно демонстрируют эту проблему.
Простое электронное письмо, которое работает, имеет Content-Type: text/html; charset="UTF-8", тот из партнерского бизнеса, который не работает, имеет Content-Type: text/html; charset=UTF-8\nContent-Transfer-Encoding: quote-printable, а также выглядит странно там, где вы ожидаете увидеть знаки равенства в содержимом html, т.е. . Не уверен, что это часть проблемы. Попробовал записать мою ссылку как . Проверьте текст[/url], чтобы имитировать его, но, хотя он отображался так, как написано в «Показать оригинал», он все равно не привел к созданию интерактивной ссылки.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-existing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»