2017-07-20 12 views
0

私はJavaで書かれたWebアプリケーションを持っています。 SpringとFreemarkerを使用して、テンプレートとSpring JavaMailSenderからの電子メールを送信します。クライアント/ユーザタイムゾーンのメールコンテンツ/本文の日付/時刻/時間を表示

コンテンツに時間が含まれているメールを送信します。問題は、サーバーがUTC + 00タイムゾーンに時間を格納し、クライアントがたとえばUTC + 03のような異なるタイムゾーンを持つ可能性があることです。たとえば、電子メールコンテンツには20/07/2017 11:30(UTC + 00)ですが、受信者は20/07/2017 14:30(UTC + 03)を予定しています。

私の質問は次のとおりです。サーバー側のタイムゾーンについての情報を持たずにクライアントのタイムゾーンで電子メールコンテンツに時間を表示することは可能ですか?彼のタイムゾーンで与えられた時間を解釈するために電子メールクライアントに伝えるトリックがありますか?小さな研究の後

+0

この最初の回答は役に立ちます。 https://stackoverflow.com/questions/9543580/javascript-time-zones-and-daylight-savings-time それを動作させるには、電子メールにjavascriptを埋め込む必要があります。 – MarkBowman

+0

javascriptの埋め込みはオプションではありません。最新の電子メールクライアントはすべてjavascriptスクリプトをフィルタリングするためです。私のアプリの場合、ユーザーは主に** Gmail **を使用します。私は ''タグを無視して、javascriptスクリプトをメールに埋め込み、Gmailの実行を妨げました。 他のアイデアはありますか?たぶん** Gmail **ウェブクライアントは、時間/時間としてHTMLタグや具体的にフォーマットされた文字列を解釈し、クライアントタイムゾーンを自動的に追加しますか? – luke

+0

私はそこにあるとは思わないが、PHPを使用して時間を表示すると、時間を画像として追加することができます。時間は動的でなければなりません。つまり、ユーザーが数時間後に開くと時間が変わります。 – Syfer

答えて

0

私自身の答え:バックエンド

説明に彼のタイムゾーンの情報を持たずに、電子メールでのユーザーのタイムゾーンの時刻を表示する方法はありません

    は、
  • 現代のメールクライアントはすべてJavaScriptコンテンツを除外しているため、 はタイムシフトのある時間を表すスクリプトを作成することはできません クライアントタイムゾーン
  • 電子メールクライアントに、一部の にhtmlの一部の時間が含まれており、適切な の形式で書かれていなければならないという手がかりを与える「マジックトーリック」はありません。バックエンドでの

    ストアのユーザーのタイムゾーン(私たちは電子メールを送信するために、ユーザ):特にGmailがそのような機能

ソリューションを持っていません。

彼らのタイムゾーンは、2つの方法で保存されることがあります。

  • Statically - ユーザーが自分のタイムゾーンを指定した場所(入力)があります。たとえば、最初にログインするときや「設定」メニューで/を押したときなどです。
  • Dynamically - ユーザーのタイムゾーンは、自分の知識なしに動的に取得されます。たとえば、ログインした各ユーザのタイムゾーンがJavascriptで取得された後、バックエンドに送信され、データベースに保存されます。

回避策:

あなたが「真の解決策」を実装したくない何らかの理由でいくつかの回避策

  1. がある場合は、最も簡単な1についての情報との時間を示すことですその隣のタイムゾーン。
    たとえば、20/07/2017 11:30は、タイムゾーンがわからないため、情報が不十分ですが、20/07/2017 11:30 (UTC+03)は、ユーザーが必要とするすべての情報を提供します。彼が自分のタイムゾーンで時間を過ごしたいのであれば、自分で数学をやらなければなりません。

  2. 少し洗練されたプラクティスは、クライアントのタイムゾーンで時間を表示し、パラメータで時間を取得するWebページへのリンクを提供することです。たとえば
    :Javascriptを使用して
    https://some-time-resolving-service.com/time/20-07-2017/11/30
    チェッククライアントのタイムゾーンとパラメータと彼のタイムゾーンに基づいて時間でウェブサイトを示しています。

  3. 2番目の点と同じ操作を行いますが、リンク埋め込み画像を提供し、画像を返すサービスを使用する代わりに行います。そのような
    <img src="https://some-time-resolving-service.com/timeimage/20-07-2017/11/30" alt="Time in the right timezone" height="50" width="100">
    またはそのような

    <img src="https://some-time-resolving-service.com/timeimages/20-07-2017-11-30.png" alt="Time in the right timezone" height="50" width="100">
    動作するかどうか不安です。
関連する問題