エス技研WordPress専科

WordPressの基本的な使い方から SEOの対応、プラグイン情報、カスタマイズ方法を解説します。


WordPressの送信メールが協定世界時(UTC・グリニッジ標準時)の問題対応

      2015/11/09

WordPressは協定世界時(UTC)で動いている

 

WordPressから送信されるメールとは

 
WordPressから送信されてくるメールの日時が協定世界時(UTC・グリニッジ標準時)になっている問題を解決します。
 
ここでいうところの「WordPressからメールを送信」とは、WordPressから送信されるメール全般です。
 

  • WordPressのシステムが更新情報などを送信するメール
  • Contact Form 7のフォームから送信するメール
  • MW WP Formのフォームからメールを送信するメール
  • 自作したフォームから wp_mail()関数を使って送信するメール
  • WP Mail SMTPを経由して外部 SMTPサーバを経由して送信するメール

などなど。
 
WordPressのシステムから送信されてくるメールや、メールフォームを作ってそこから送信するメールなどなど、WordPressから送信されてくるメール全般に共通して起こる問題で、受信したメールが協定世界時(UTC・グリニッジ標準時)になっているという不具合があります。
 
この記事ではその協定世界時になる問題の解決方法と根本原因を解説します。
 
 

WordPressのメールが協定世界時・UTCになる問題の解決方法

 
【対応ファイル】
{WordPressのルート}/wp-settings.php
 
【対応行数】
43行目
 
【対応箇所】

 
上記のように「date_default_timezone_set();」が設定されているところの引数を「UTC」から「JTC」に変更することで対応することができます。
 
その他、「Asia/Tokyo」「UTC+9」に変えることでも対応できます。
 
というか、「UTC+4」「UTC+2」でも OKで、「AAA」でも OKでしたので、おそらく「UTC」以外なら「設定」の画面で設定されたものが利用されるのではないかと思われます。
 
また、「date_default_timezone_set();」設定行を削除しても OKです。
 
20151109_wp_01
 
この設定を変更しても、上記のとおり「設定」-「一般」の「タイムゾーン」の情報は、特に変化はありません。
 
 

WordPressのメールが協定世界時・UTCになる問題の本質

 
WordPressから送信されてくるメールが協定世界時(UTC、グリニッジ標準時)になってしまう根本の原因は、下記の 2つによるものです。
 

  • WordPressのメールヘッダの「date」が「UTC」になっている
  • 受け取る側のメールソフトが UTCを無視している

 
 

WordPressのメールヘッダの「date」が「UTC」

 
WordPressのデフォルトの時間の設定は、前項で変更の設定をしたように「date_default_timezone_set();」で「UTC」と設定されています。
 
そして、管理画面の「設定」-「一般」の「タイムゾーン」の項目で利用している場所の時間帯を設定することで現地の時間帯で表記されるように設計されています。
 
WordPressは世界中で利用されていますので、当然の仕様と言えます。
 
 
そのため、WordPressで送信されるメールのメールヘッダ情報の「date」の値は、協定世界時(UTC、グリニッジ標準時)で設定されて送信されます。
 
具体的には↓こんな感じの表記になります。
  Date: Sun, 1 Nov 2015 07:45:45 +0000
 
これを、前項で解説したように「date_default_timezone_set();」を「JTC」に変更すると下記のような日本の標準時の表記に変更されます。
  Date: Sun, 1 Nov 2015 16:45:45 +0900
 
この対応を行うのが、前項で解説した方法です。
 
 

受け取る側のメールソフトが UTCを無視

 
そもそもの話として、この記事を読む方は WordPressのメール送信の日時の設定に関して何かしらのトラブルがあったために探してこられた方だと思いますが、この不具合が起こる方と起こらない方があることも分かっていると思います。
 
デフォルトの「date_default_timezone_set();」設定が「UTC」なのに、なんで大きな騒ぎにならないのだろうか?と思う方もあるでしょう。
 
理由は、受け取る側のメールソフトが「UTC」で設定されている時間の情報を無視するものとしないものとがあるためです。
 
 
より具体的には、下記の 2つの時間は表記は違いますが同じ日時を表しています。
 
  Date: Sun, 1 Nov 2015 07:45:45 +0000
  Date: Sun, 1 Nov 2015 16:45:45 +0900
 
前者が協定世界時(グリニッジ標準時)の表記で、後者が日本の標準時の表記です。
 
これを同じ時間として扱うか、扱わないかはメールソフトによるのですが、最近の一般的なメールソフトはこれを受信した側の時間帯に合わせて変更して処理するようになっています。
 
なぜなら、メールは世界中で利用されていますので。
 
今回の話のきっかけは国内におかれている WordPressから送信されたメールの話でしたが、イギリスの標準時の時間帯に住んでいる方から上記の時間にメールが送信された場合も同じく「07:45:45 +0000」と表記されてくるわけです。
 
これを、現地の時間は「07:45:45」なので「07:45:45」として処理しよう、としてしまうと時系列で並ばなくなってしまいます。
そのため、受け取った側では「16:45:45」と表記し直すわけですが、一部のメールソフトではこの処理を行わないものがあるため、今回の問題が発生します。
 
より具体的には「Becky! Internet Mail」は、この対応を行わないことを確認しています。
 
そのため、日本国内の人しかメールをやり取りしない、日本国内にあるサーバしか利用しない、WordPressのからのメールは受信しない、などなど明確なポリシーのもと使っているのであれば別ですが、メールの設定を変更するか、メールソフトを乗り換えることをおススメします。
 
 

メールヘッダの dateの情報について

 
最後におまけ的な内容ですが、メールヘッダの「date」の値は「メールが送信された日時」ではありません。
 
厳密には「メールが作成された日時」です。
 
そのため、
 12:00 メールを作成し保存し、1時間後に自動送信設定
 13:00 自動送信設定によりメールを送信
とした場合は、「date」の値は「12:00」となります。
 
 12:00 スマホでメールを送信したが電波がなく送信されなかった
 13:00 スマホが電波をキャッチしたので自動的に送信した
となった場合も、「date」の値は「12:00」となります。
 
また、「date」の日時は、メールを作成した端末(PCやスマホなど)の時間が設定されますので、端末の時間設定がずれている場合はずれた時間のまま送信されます。
 
さらに、メールサーバによっては、「date」の値を自分のサーバを通った時の日時に上書きする設定のものも存在します。
 
そのため、「送信日時」でメールをソートしている場合は思わぬ見落としにつながる可能性もあります。
ソート条件を設定できるならば、「受信日時」で設定する方がいいかもしれませんね。

 - WordPressの基本設定

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload the CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressに Favicon(ファビコン)を設定する(プラグイン必要なし)

WordPressに Favicon(ファビコン)をプラグインなしで設定する方法をサンプルソース付きで説明します。

BackWPupでバックアップ・機能の基本設定 Settings

BackWPupその5。バックアップ設定のベースになるBackWPup自体の設定解説です。

WordPress管理画面のメニューに項目を追加する方法解説

WordPressの管理画面のメニューに項目を追加する方法をサンプルソースを交えて解説します。

WordPressの不正ログインを Edit Author Slugで回避

WordPressのセキュリティ強化に Edit Author Slugを使う理由と設定方法の解説をしています。

BackWPupでWordPressのDBもファイルもバックアップ

BackWPupその1。BackWPupとWordPressのバックアップについての解説。

BackWPupでバックアップ・設定したJobの実行、ファイル一覧

BackWPupその4。バックアップ設定した Jobを実行する方法、ログの一覧、保存されたファイル一覧の解説です。

30分でWordPressを引越し・他のサーバに引越しや開発環境の構築手順

WordPressを他のサーバに引っ越しするとき、テスト環境を作るときなどの作業手順をまとめました。プラグインを使う方法もありますが手作業でも簡単です。

WordPressの投稿データ(記事データ)の管理方法

投稿の登録の方法、投稿データの管理方法の解説。MetaManagerなどのプラグインを入れた場合の入力ボックスを表示させる方法についても解説します。

WordPressのスラッグとは?

WordPressのスラッグって何?それを解説している記事です。なんとなく分かっている気になっているものを改めてしっかり確認をしてみませんか?

プラグインが原因で起動しないWordPressを復旧させる方法解説

プラグインが原因で WordPressが起動できなくなった、ログインできなくなった場合の対処方法の解説です。