Django anymail在电子邮件中的链接已更改,请不要更改

2024-05-15 12:03:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试做一些我认为应该很简单但看起来很复杂的事情。你知道吗

我使用的是Django Anymail,特别是SparkPost。我想在电子邮件中包含一个指向我的站点的链接,比如<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)

我试过这两个与没有点击和打开跟踪,它没有区别。你知道吗


Tags: djangofromcomfalsemessage链接emailhtml
1条回答
网友
1楼 · 发布于 2024-05-15 12:03:40

我可以通过从Anymail切换到官方的Sparkpost python应用程序来解决这个问题。你知道吗

Django的安装说明是here,禁用点击跟踪的详细信息是here。你知道吗

Sparkpost python应用程序的API与Anymail应用程序的API几乎相同,并且由于禁用此应用程序的单击跟踪立即起作用,虽然我花了很长时间试图让它通过两个不同的esp与Anymail一起工作,但我只能得出结论,这可能是Anymail错误。你知道吗

相关问题 更多 >