SendGrid не удается доставить список-отменить подписку на заголовок электронной почты в Yahoo и Outlook

#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 имеет привычку декодировать его, прежде чем показывать вам. Если вы перейдете к Показать оригинал> Загрузить оригинал, вы увидите это.

Я не совсем понимаю, в чем собственно проблема, с которой вы столкнулись. Если это просто эта кодировка, беспокоиться не о чем.