■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

iPhone、Outlookでの「送信者名(差出人)」文字化けについて

torchright > iPhone、Outlookでの「送信者名(差出人)」文字化けについて @ 2010/12/8 12:45
お世話になってます。

Baserのお問い合わせフォームを使わせていただいておりますが、お問い合わせフォームから送られるメールの内容で、「送信者名(差出人)」だけがWindowsのOutlook2003で受信すると文字化けを起こします。

一応Outlook側の不具合かと思い、
http://support.microsoft.com/kb/881816/ja
ここを参考にOutlookのエンコードを変えても直りません。

同じようにiPhoneのアドレス([email protected])をCCで設定すると、同じように文字化けするようです。
本文はきちんと表示されているので、送信者名(差出人)をアルファベットにして取り急ぎの対処は出来るのですが、どなたか解決方法をご存知であればご教示ください。

---
・BaserCMSのバージョン:1.6.6
・レンタルサーバー名:チカッパ!
・スマートURLの利用: ON
・設置フォルダ:サブフォルダ
・利用しているデータベース: MySQL
・PHPスキル(自己評価): 全くわからない

ryuring > Re: iPhone、Outlookでの「送信者名(差出人)」文字化けについて @ 2010/12/8 17:32
こんにちは。

この不具合については、1.6.7.1 で、開発側でも確認してます。
ちょっとお手数なのですが、次のような修正を行ってください。
次のバージョンでは解消されます。

baser/app_controller.php(490行目を変更)

$this->EmailEx->from = $fromName . '<'.$from.'>';

 ↓
$this->EmailEx->from = $fromName . ' <'.$from.'>';



baser/plugins/mail/controllers/mail_controller.php(414行目を変更)

$this->EmailEx->from = $fromName . '<'.$from.'>';

 ↓
$this->EmailEx->from = $fromName . ' <'.$from.'>';



baser/controllers/components/email_ex.php(280行目に挿入)

function __formatAddress($string, $smtp = false) {
  $hasAlias = preg_match('/((.*)\s)?<(.+)>/', $string, $matches);
  if ($smtp && $hasAlias) {
      return $this->__strip('<' .  $matches[3] . '>');
  } elseif ($smtp) {
      return $this->__strip('<' . $string . '>');
  }
  if ($hasAlias && !empty($matches[2])) {
      return $this->__strip($this->__encode($matches[2]) . ' <' . $matches[3] . '>');
  }
  return $this->__strip($string);
}

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

torchright > Re: iPhone、Outlookでの「送信者名(差出人)」文字化けについて @ 2010/12/9 1:00
ありがとうございます!

ちょっと不安ですがやってみます。