Django:如何重定向到mailto

时间:2010-10-18 15:27:07

标签: django redirect mailto

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

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

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

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

- 彼得

3 个答案:

答案 0 :(得分:2)

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

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

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

<meta http-equiv="refresh" content="0;url=mailto:youremail@test.com" />

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

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

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

希望这有帮助!

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

  

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

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