wordpressのKtai Entry(メール投稿プラグイン)でRFCに準拠していないフォーマットのメールアドレスでも投稿できるようにする方法
WordPressのKtai Entryプラグインは外出先からメールでブログ投稿できるので、
PCを持っていないエンドユーザーでも気軽に使えるので便利に使わせてもらってます。
しかし先日、あるメールアドレスの方だけ投稿が反映されないと連絡があり、
調べてみると.(ドット)が連続してるRFC違反の携帯メールアドレスでした。。
最近見ないアドレスなので、あまり遭遇する機会が無いかもしれませんが自分用に対応方法をメモ。
(失敗)管理画面からメールアドレスを”(ダブルクォーテーション)でくくる
管理画面から投稿ユーザーのメールアドレスをダブルクォーテーションでくくる方法はエラーメッセージが出て保存できず。。
これはダメなのでプラグインを直接いじる事にしました。
余談ですが、メールソフトによっては ”〜..〜”@docomo.ne.jp で送信できますよね。
Ktai Entryを編集する
プラグイン内の inc/post.php 499行目付近の以下のコードを変更します。
変更前
private function validate_address($address) { $user_id = 0; $user = get_user_by_email($address); if ($user) { $user_id = $user->ID; } $user_id = apply_filters('ktai_validate_address', $user_id, $address); if (! $user_id) { return NULL; } return $user_id; }
↓
変更後
private function validate_address($address) { $user_id = 0; $user = get_user_by_email($address); if (!$user) { $address_quote = preg_replace('/^"(.*?)"@(.*?)/i', '$1@$2', $address); $user = get_user_by_email($address_quote); } if ($user) { $user_id = $user->ID; } $user_id = apply_filters('ktai_validate_address', $user_id, $address); if (! $user_id) { return NULL; } return $user_id; }
これで無事に投稿できるようになりました。
以上、wordpressのKtai Entry(メール投稿プラグイン)でRFCに準拠していないフォーマットのメールアドレスでも投稿できるようにする方法でした。
最新情報をお届けします