Django:如何重定向到mailto

问题描述 投票:3回答:3

我有一个名为“电子邮件选定成员”的Django管理员操作。检查一些成员并单击“Go”按钮,打开用户的邮件程序。已预先输入所选成员的电子邮件。

这是由Django HttpResponseRedirect(uri)工作的,其中uri是“mailto:email1,email2 ..其中地址email1,email2 ...在服务器上查找。

唯一的问题是浏览器重定向到空白页面以及打开客户端邮件程序。

有什么方法可以避免这种情况吗?

- 彼得

django redirect mailto
3个回答
2
投票

这个问题有点老了,但我刚刚完成了这个问题,我想我可以帮助任何人寻找未来的答案。

我遇到了这个问题,因为我正在构建的网站有一个内置的跟踪系统,可以跟踪自托管广告的出站链接的URL。如果我不重定向,则没有办法(不改变它的实现方式)来跟踪点击,因为我没有使用API​​或任何东西。

简单的解决方法是做你做的,发回一个内容是元标记的HttpResponse()

<meta http-equiv="refresh" content="0;url=mailto:[email protected]" />

这会导致页面在加载时刷新,从而触发mailto:操作。

现在我们留下了一个打开的窗口,但我们无法使用Javascript的window.close()方法关闭窗口。但我相信this solution应该可行。刷新成功后调用Javascript函数。

不幸的是,我没有对此进行过测试,但是这两种方法应该完成mailto:重定向,不会留下空白的窗口/标签。

希望这可以帮助!


1
投票

不要使用HttpResponseRedirect。只需将mailto:line设为链接即可。 <a href="mailto:email1...">Email selected members</a>


0
投票

我不认为这是可能的。 RFC 2616说重新302重定向:

临时URI应该由响应中的Location字段给出。除非请求方法是HEAD,否则响应的实体应该包含一个简短的超文本注释,其中包含指向新URI的超链接

所以我看到的空白页是(非常)短超文本注释。浏览器获取重定向指令,弹出带有重定向消息的临时页面,然后检索重定向的URL。但是使用mailto:URL,临时页面显然仍然存在。

© www.soinside.com 2019 - 2024. All rights reserved.