#python-3.x #gmail #yahoo #sendgrid-api-v3 #list-unsubscribe
#python-3.x #gmail #yahoo #sendgrid-api-v3 #список-отписаться
Вопрос:
Я пытаюсь отправлять электронные письма с помощью SendGrid Api с использованием python. Я уже разобрался с тем, как добавить заголовок для отмены подписки на список при отправке электронных писем, и мне это удалось, gmail получает только заголовок для отмены подписки. Я получаю электронное письмо на yahoo, Outlook, но не заголовок для отмены подписки.
Теперь это то, что я делал, вы заметите дополнительный код, я добавляю тему в mailto url и передаю закодированную строку, которая является обязательным требованием.
{
"personalizations": [
{
"to": [
{
"email": "example@example.com"
}
],
"subject": "Your subject line here"
}
],
"from": {
"email": "example@example.com"
},
"headers": {
"List-Unsubscribe": "<mailto:unsubscribeexampexample@example.com?subject=unsubscribe:encoded_string>, <http://www.unsubscribe.example.com>"
}
}
Здесь endode_string изначально представляет собой строку запроса, содержащую идентификаторы, пользователя и другую информацию, которая необходима для отмены подписки человека.
Для кодирования мы используем следующий код. сообщение: строка — это то, что мы кодируем.
cipher = AES.new(cipher_secret_key.encode(), AES.MODE_ECB)
encoded = base64.b64encode(cipher.encrypt(message.encode()))
Выводится код шифрования.
bYFgnNbtHMbI6nO8dWBPpuYhEKPHI5H0m4ufZCWoL1g~|eyAicmNwdF90byI6ICJtdW5lZWIuNjVoYXNzYW5AZ21haWwuY29tIiwgInRlbmFudF9pZCI6ICJjb3Vyc2VyYSIsICJjdXN0b21lcl9pZCI6ICIxIiwgIm1lc3NhZ2VfaWQiOiAiMDA0MDdmMzM0NDVmOGIwODA1ZTAiLCAic3ViYWNjb3VudF9pZCI6ICIwIiB9
И вот тут все идет наперекосяк, gmail с этим согласен, а yahoo и Outlook — нет.
Вы можете проверить разницу для Gmail и Yahoo, связанных с заголовком отмены подписки
Yahoo против Gmail
Я продолжу и вставлю вывод необработанного сообщения Yahoo.
List-Unsubscribe:
=?us-ascii?Q?=3Cmailto=3Abcsf15m021=40pucit=2Eedu=2Epk=3FO=3Dunsubscribe=3AbYFgnNbtHMbI6nO8?=
=?us-ascii?Q?dWBPpuYhEKPHI5H0m4ufZCWoL1g~|eyAicmNwdF?=
=?us-ascii?Q?90byI6ICJtdW5lZWIuNjVoYXNzYW5AZ21haWwuY?=
=?us-ascii?Q?29tIiwgInRlbmFudF9pZCI6ICJjb3Vyc2VyYSIs?=
=?us-ascii?Q?ICJjdXN0b21lcl9pZCI6ICIxIiwgIm1lc3NhZ2V?=
=?us-ascii?Q?faWQiOiAiMDA0MDdmMzM0NDVmOGIwODA1ZTAiLC?=
=?us-ascii?Q?Aic3ViYWNjb3VudF9pZCI6ICIwIiB9=3E?=
Проблема, ее беспокоят, вы заметите, что 3C является шестнадцатеричным для < [меньше знака]. Что может быть причиной этого? Ожидает ли почтовый сервер Yahoo строку, которая должна содержать определенные символы. Я экспериментировал и вставил до 24 символов, и он пошел, и заголовок был получен для Yahoo, и, к сожалению, выше этого предела он начинает генерировать вывод, как я опубликовал выше.
Ответ №1:
Кодировка, которую вы видите, является нормальной и не должна вызывать проблем. Это происходит и в Gmail, но Gmail имеет привычку декодировать его, прежде чем показывать вам. Если вы перейдете к Показать оригинал> Загрузить оригинал, вы увидите это.
Я не совсем понимаю, в чем собственно проблема, с которой вы столкнулись. Если это просто эта кодировка, беспокоиться не о чем.