Django anymail ссылки в письмах изменены и не работают - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь сделать что-то, что, на мой взгляд, должно быть очень простым, но, кажется, очень сложным.

Я использую Django Anymail со SparkPost в качестве ESP.Я хочу добавить ссылку на мой сайт в электронном письме, что-то вроде <a href="www.example.com>click here</a>.

Однако, что бы я ни делал, эта ссылка меняется на что-то вроде: http://go.sparkpostmail1.com/f/a/Vju1M3X6TVz79ONI6TywgA~~/AAOsuQA~/RgRdt_u-...

Затем, когда я нажимаю на ссылку, я просто получаю This site can’t be reached.Я отключил отслеживание кликов и открытий, и я попытался отправить электронное письмо как в виде контента, сгенерированного в Django, так и в виде шаблона SparkPost, и я даже попытался переключить ESP на Mailgun, и я получил те же результаты.

Вот моя конфигурация Anymail:

EMAIL_BACKEND = "anymail.backends.sparkpost.EmailBackend"

ANYMAIL = {

    "SPARKPOST_API_KEY": "MY_KEY",
    "SPARKPOST_API_URL": "https://api.sparkpost.com/api/v1",
    'SPARKPOST_SENDER_DOMAIN': "mail.mysite.com",

    "SEND_DEFAULTS": {
        "track_clicks": False,
        "track_opens": False,
    },
}

Вот моя функция отправки сообщений:

from django.core.mail import EmailMultiAlternatives
from smtplib import SMTPException

def send_welcome_email( address ):
  subject, from_email = 'Hello! Thank you for your interest in Discover three.js', 'Discover three.js <welcome@mail.discoverthreejs.com>'

  html_content = '<a href="www.example.com">click here</a>'
  message = EmailMultiAlternatives(subject, 'Hello!', from_email, [address])
  message.attach_alternative(html_content, "text/html")

  # alternatively, use sparkpost template
  #message.template_id = 'welcome'

  # Tried both of these settings to no avail
  #message.track_clicks = False
  #message.click_tracking= False

  try:
    message.send()
  except SMTPException as e:
    print('There was an error sending an email: ', e)

Я пробовал это как с, так и без клика и открытого отслеживания, этоне имеет значения.

1 Ответ

0 голосов
/ 28 октября 2018

Я смог решить эту проблему, переключившись с Anymail на официальное приложение Sparkpost Python.

Инструкции по установке Django: здесь и подробности отключения отслеживания кликов здесь .

API для Python-приложения Sparkpost практически идентичен API-интерфейсу Anymail, и, поскольку отключение отслеживания кликов для этого сработало немедленно, я потратил много времени, пытаясь заставить его работать с Anymail более двухразные ESP, я могу только заключить, что это, вероятно, ошибка Anymail.

...