WP-DBManager使用時に発生するメールの文字バケ対策
Category
WordPress
WordPressでデータベースのバックアップを取る際、WP-DBManagerプラグインを使って「1週間に一度データベースのバックアップを取る」や「3日に一度データベースを最適化する」等と設定しておくと、自動でデータベースのバックアップや最適化をしてくれるのでとても便利です。また、データベースのバックアップは、サーバー内に格納されるだけでなく、指定のメールアドレスにもSQLデータとして転送できますので、サーバーにトラブルが発生した場合にも安心です。
ですが、デフォルト状態では、メールを受信した際に宛先や件名が文字バケして表示されてしまう場合があります。これは、使用しているメーラーによるみたいで、スマートフォンで受信するとかなり高い確率で文字バケが発生してしまいます。
この間、「PCのメーラー(その時はWindows Live メールとOutlook Express)では問題ないけど、スマートフォンのメーラー(iPhoneやAndroid端末のメーラー)だと文字バケしちゃいますよー」といったことがありましたので、覚え書きのため書き残しておきます。
Keyword:データベースバックアップ,メールの文字バケ対策
プラグインのPHPを一部修正する
PHPファイルを修正するといってもいたって簡単。
メールの件名とヘッダーにエンコードを追記してやるだけです。
WP-DBManagerプラグインのバージョンは、2012.2.21時点で最新版となるVer.2.63で説明します(※新・旧バージョンでは、多少ソースが変わっていると思います)。
database-manage.phpとwp-dbmanager.phpを修正します。
database-manage.php
//$mail_subject = sprintf(__('%s Database Backup File For %s', 'wp-dbmanager'), wp_specialchars_decode(get_option('blogname')), $file_date); //$mail_header = 'From: '.wp_specialchars_decode(get_option('blogname')).' Administrator <'.get_option('admin_email').'>'; $mail_subject = sprintf(__('%s Database Backup File For %s', 'wp-dbmanager'), wp_specialchars_decode(get_option('blogname')), $file_date); $mail_subject = mb_encode_mimeheader($mail_subject, 'UTF-8', 'B'); $mail_header = sprintf('From: %s Administrator <%s>', mb_encode_mimeheader(wp_specialchars_decode(get_option('blogname')), 'UTF-8', 'B'), get_option('admin_email'));
補足
90行目辺りにある”$mail_subject”と”$mail_header”という箇所を探します。
“$mail_subject”が件名、”$mail_header”がメールヘッダー(宛先)となります。
もとの記述を”//”でコメントアウトし、その下に件名とヘッダーをUTF-8で出力するように追記します。
wp-dbmanager.php
//$mail_subject = sprintf(__('%s Database Backup File For %s', 'wp-dbmanager'), wp_specialchars_decode(get_option('blogname')), $file_date); //$mail_header = 'From: '.wp_specialchars_decode(get_option('blogname')).' Administrator <'.get_option('admin_email').'>'; $mail_subject = sprintf(__('%s Database Backup File For %s', 'wp-dbmanager'), wp_specialchars_decode(get_option('blogname')), $file_date); $mail_subject = mb_encode_mimeheader($mail_subject, 'UTF-8', 'B'); $mail_header = sprintf('From: %s Administrator <%s>', mb_encode_mimeheader(wp_specialchars_decode(get_option('blogname')), 'UTF-8', 'B'), get_option('admin_email'));
補足
120行目辺りにある”$mail_subject”と”$mail_header”という記述を探します。
こちらもdatabase-manage.phpと書いてある内容は同じですので、もとの記述をコメントアウトし、その下に件名とヘッダーをUTF-8で出力するように追記します。
これで、メールの宛先や件名が文字バケせずに受信できるようになります。
関連記事(※当記事と関連性が高いと思われる記事)
WordPressのユーザー名を分らなくする方法
2014/10/05
WordPressの検索表示をカスタマイズする
2012/03/11
WordPress 3.3.1
2012/01/04
よく使うLinuxコマンドの覚え書き
2012/01/29
WordPress 3.4
2012/06/18
おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)