2012-03-29 11 views
4

私たちのアプリは、ハッシュフラグメントとのリンクを含む電子メールを生成します。Outlookは電子メールからのURLハッシュを取り除きます

  • Outlook 2010のユーザーが(<a>タグ内)HTMLリンクをクリックすると、URLが開かれるが、不思議除外ハッシュフラグメント。
  • ユーザーがプレーンURL(クリック可能なリンクに変換する)をクリックすると、完全なURLが正しく開きます。それは場合に役立ちます。ここ

は、私たちのRailsアプリから関連するコードです:

mail(from: @message.from, to: @message.to, cc: @message.cc, bcc: @message.bcc, subject: @message.subject) do |format| 
    format.html { render text: @message.body_text } 
end 

電子メールメッセージ(切り詰め、類似したパターンに従ってください我々のアプリのURLの代わりにTwitterのURLを使用して):

Subject: Hello 
Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

<html> 
    <head> 
    <meta content='text/html; charset=utf-8' http-equiv='content-type'> 
    <title>title</title> 
    </head> 
    <body> 
    <table id='message_body_template'> 
     <tr> 
     <td> 
      <p><a href="http://twitter.com/#!/cnn" title="" target="">Click here</a> 
      to learn more.</p> 
      <p>Plain text link: http://twitter.com/#!/cnn</p> 
     </td> 
     </tr> 
    </table> 
    </body> 
</html> 

こちらをクリックして、プレーンテキスト「リンク」はCNNのTwitterページを開きながら、Twitterのホームページを開きます。なぜ誰かが説明できますか?

+0

はい、Outlookの一部のバージョンでは、この問題が発生しました。 Googleが私をここに連れて来たので、他の人たちもこれに直面しているのを知ってよかった。 –

答えて

0

あなたがOutlookのリンクを処理する方法を変更することはできませんが、あなたは、単にhttps://twitter.com/cnnやTwitterを使用することができますが、[はい、問題はあなたが使用しているもののバックエンドとは無関係であるhttps://twitter.com/#!/cnn

+0

私はもっと明確にすべきだった - 例では私たちのアプリのURLを同じパターンに従っていて、同じ振る舞いを示しているので、私はこの例のTwitter URLでアプリのURLを置き換えた。サーバー側のコードを修正する必要があるかもしれませんが(幸いなことに、URLのほんの一握りです)、これは主にOutlookの既知の問題であるかどうか、回避策があるかどうかを確認するためにここに投稿していました。 –

+0

@ MartineGordon同じ問題がここにあります。 Outlookにハッシュを取り除く方法を見つけましたか? – barsh

+1

これは、マイクロソフトが標準や合理的な期待に従うようにする方法があるかどうか尋ねるようなものです。それを解決してください。 – tripleee

1

にリダイレクトされます。一部のバージョンのOutlookでは、URLのハッシュ部分が削除されているようです(不満足なことに)。

私のソリューションは、メールにハッシュなしリンクの修正バージョンでしたし、を行くことになっていますどこにそれをリダイレクトします。

私はLaravel +バックボーンで同じ問題を持っていたとき、私は(Railsの中routes.rbに相当)routes.phpでこのコードを使用してリダイレクトを行わ:

// Redirect /password-reset/XYZ to #/password-reset/XYZ 
Route::get('/password-reset/{any}', function() { 
    $url = Request::url();   // Get full URL 
    $path = Request::path();  // Get portion of URL after the domain name 
    return Redirect::to(str_replace($path, "#", $url) . $path); 
}); 
0

私はURLを設定すると最近私は、この問題に直面していましたどんなプロトコルもなしに。後でURLにプロトコルを追加しようとしましたが、正しく動作するようになりました。

私はJSにメール本体部分を作成していました。以下は初期コードです。

var link = window.location.host+'/#/somepage';

作業コード。

var link = window.location.protocol + '//' + window.location.host+'/#/somepage';

私は、これは同様の問題に直面している人を、助けることを願っています。

関連する問題