Python 为电子邮件链接插入到UUID的随机空间
无论出于何种原因,都会在记录的UUID中插入一个随机空间。我发送电子邮件让人们点击确认或取消链接来更新我数据库中的记录。我使用UUID来确保他们正在更新正确的记录 我为forms.py中的链接生成HTML-如果我只有cancel\u捐赠\u链接,它就可以正常工作。一旦添加了确认链接。它在已取消的链接UUID之间添加一个空间Python 为电子邮件链接插入到UUID的随机空间,python,html,django,email,uuid,Python,Html,Django,Email,Uuid,无论出于何种原因,都会在记录的UUID中插入一个随机空间。我发送电子邮件让人们点击确认或取消链接来更新我数据库中的记录。我使用UUID来确保他们正在更新正确的记录 我为forms.py中的链接生成HTML-如果我只有cancel\u捐赠\u链接,它就可以正常工作。一旦添加了确认链接。它在已取消的链接UUID之间添加一个空间 for special_word in values['special_words']: print special_wor
for special_word in values['special_words']:
print special_word
text = values['text']
print text
uuid = rescheduled_donor.uuid
if special_word == "confirm_donation_link":
values['text'] = text.replace(
special_word,
'<a href="http://{0}/actions/email_blasts/confirm/' \
'{1}">Confirm Donation</a>'.format(
domain,
uuid
)
)
values['special_words'].remove(special_word)
continue
if special_word == "cancel_donation_link":
values['text'] = text.replace(
special_word,
'<a href="http://{0}/actions/email_blasts/cancel/' \
'{1}">Cancel</a>'.format(
domain,
uuid
)
)
values['special_words'].remove(special_word)
continue
对于值中的特殊单词[“特殊单词”]:
打印特殊单词
text=值['text']
打印文本
uuid=重新安排的捐赠者.uuid
如果特殊单词==“确认捐赠链接”:
值['text']=文本。替换(
特别词语,
''。格式(
领域,
uuid
)
)
值['special_word']。删除(special_word)
继续
如果特殊单词==“取消捐赠链接”:
值['text']=文本。替换(
特别词语,
''。格式(
领域,
uuid
)
)
值['special_word']。删除(special_word)
继续
就在我将所有上下文发送到电子邮件模板之前,我打印出html,其中显示UUID之间没有空格
<div>If you wish to cancel your donation click here: <a href="http://127.0.0.1:8000/actions/ema
il_blasts/cancel/f42f1915-2e6b-401c-bd0f-e99ba54e9ea5">Cancel</a> </div>
如果您希望取消捐赠,请单击此处:
发送电子邮件后,URL在UUID部分中有一个空格。它将被%20替换。
取消
模板
<div style="color:#500050">
<img src="{{ STATIC_URL}}images/email_logo2.jpg">
<p>
{{ message|safe }}
</p>
<p>
{% for image in pages %}
<img src="{{ MEDIA_URL }}{{ image }}">
{% endfor %}
</p>
<p>
{{ closing_message|safe }}
</p>
</div>
{{message | safe}}
{%页中的图像为%}
{%endfor%}
{{关闭|安全}
~
我不知道为什么或者如何插入这个随机空间
来自电子邮件的HTML
<div style="color:#500050">
</p><div>If you have any questions or need any assistance you may reply by e-mail or call customer service <a href="tel:631-234-0000" value="+16312340000" target="_blank">631-234-0000</a>.<br></div><div><br></div><div><br></div><div>To confirm this new date, click here: <a href="http://127.0.0.1:8000/actions/email_blasts/confirm/1544ce69-3c44-4554-839a-a2fd09f049e3" target="_blank">Confirm Donation</a> </div><div><br></div><div>To pick a different date, click here: <a href="http://127.0.0.1:8000/external/1544ce69-3c44-4554-839a-a2fd09f049e3/" target="_blank">Donate</a> </div><div><br></div><div>To cancel your donation, click here: <a href="http://127.0.0.1:8000/actions/email_blasts/cancel/1544ce%2069-3c44-4554-839a-a2fd09f049e3" target="_blank">Cancel</a> <br></div>
<p></p>
<p>
</p>
<p>
<br>
</p>
</div>
如果您有任何问题或需要任何帮助,您可以通过电子邮件或致电客服回复。
若要确认此新日期,请单击此处:
若要选择其他日期,请单击此处:
若要取消您的捐赠,请单击此处:
我最终更改了URL的字符串部分,以使用该函数,而不是硬编码。我还注意到,与在我的笔记本电脑上本地运行它时相比,它与在我的Web服务器上的临时站点上运行时有所不同
if special_word == "cancel_donation_link":
values['text'] = text.replace(
special_word,
'<a href="{0}{1}">Cancel</a>'.format(
domain,
reverse('email_blasts_cancel', kwargs={'donor_uuid': uuid})
)
)
如果特殊单词==“取消捐赠链接”:
值['text']=文本。替换(
特别词语,
''。格式(
领域,
反向('email_blasts_cancel',kwargs={'provider_uuid':uuid})
)
)
您能否提供该链接的实际HTML,与电子邮件一起收到?最好从原始邮件内容中复制一份。从电子邮件中添加HTML。不知道如何将空间添加到UUID。如果我翻转订单并在确认链接之前显示取消的链接,两个链接都可以正常工作。但是,我需要将cancel链接设置为最后一个。我不知道这是否真的是原因,但在代码的第一位的第23行,“{1}”>cancel<之前有一个额外的空间,而不像其他..(事实上,整个函数都有一个额外的空间)我不知道这是否会导致这样一个奇怪的错误,但似乎有道理?我会测试它,但我没有设置python环境。