3

「選択したメンバーにメールを送信する」というDjango管理アクションがあります。いくつかのメンバーにチェックを入れ、[Go] ボタンをクリックすると、ユーザーのメール プログラムが開きます。選択したメンバーの電子メールは事前に入力されています。

これは Django HttpResponseRedirect(uri) によって機能し、uri は "mailto:email1,email2.." であり、アドレス email1、email2 ... はサーバーで検索されました。

唯一の問題は、クライアントのメール プログラムを開くだけでなく、ブラウザが空白のページにリダイレクトすることです。

これを回避する方法はありますか?

-- ピーター

4

3 に答える 3

4

この質問は少し古いですが、私はこれを経験したばかりで、将来答えを探している人を助けることができると思います.

私が構築していた Web サイトには、自己ホスト型広告のアウトバウンド リンクの URL を追跡する組み込みの追跡システムがあったため、この問題に遭遇しました。リダイレクトしないと、API などを使用していないため、(実装方法を変更しない限り) クリックを追跡する方法がありません。

HttpResponse()簡単な修正は、コンテンツがメタタグであるを送り返すことでした。

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

これにより、読み込み時にページが更新され、mailto:アクションがトリガーされます。

ウィンドウが開いたままになっていますが、Javascript のwindow.close()メソッドを使用してウィンドウを閉じることはできません。ただし、このソリューションは機能するはずです更新が成功した後、その Javascript 関数を呼び出します。

残念ながら、私はこれをテストしていませんが、これらの 2 つの方法はmailto:、空白のウィンドウ/タブを残さないリダイレクトを達成するはずです。

お役に立てれば!

于 2014-09-03T22:39:43.233 に答える
1

HttpResponseRedirect を使用しないでください。mailto: 行をリンクにするだけです。<a href="mailto:email1...">Email selected members</a>

于 2010-10-18T15:30:43.523 に答える
0

私はそれが可能だとは思わない。RFC 2616 では、302 リダイレクトに関して次のように述べられています。

一時的な URI は、応答の Location フィールドで指定する必要があります。リクエスト メソッドが HEAD でない限り、レスポンスのエンティティには、新しい URI へのハイパーリンクを含む短いハイパーテキスト ノートを含める必要があります (SHOULD)。

つまり、私が見る空白のページは、(非常に) 短いハイパーテキスト ノートです。ブラウザーはリダイレクト命令を取得し、リダイレクト メッセージを含む一時ページをポップアップ表示し、リダイレクトされた URL を取得します。しかし、mailto: URL を使用すると、明らかに一時ページが残ります。

于 2010-10-19T14:54:58.710 に答える