sfMail を日本語対応に拡張

| コメント(0) | トラックバック(0)
日本語のメールを送信する場合。
適宜、文字コードを jis に変換しするように、sfMail を拡張。
クラス jisMail を作る。

class jisMail extends sfMail
{
  public function __construct()
  {
    parent::__construct();
    parent::setCharset('iso-2022-jp');
    parent::setEncoding('7bit');
  }

  public function setSubject($str)
  {
    return parent::setSubject(mb_convert_encoding($str, 'iso-2022-jp', 'UTF-8'));
  }
 
  public function setBody($str)
  {
    return parent::setBody(mb_convert_encoding($str, 'iso-2022-jp', 'UTF-8'));
  }
 
  public function setFrom($address, $name = null)
  {
    if ($name == null)
    {
      if (preg_match('/([^<]*)<([^>]*)>/u', $address, $ms) == 1)
      {
        $name = $ms[1];
        $address = $ms[2];
      }
    }
    parent::setFrom($address, mb_encode_mimeheader(mb_convert_encoding($name,'iso-2022-jp','UTF-8'),'iso-2022-jp','B'));
  }

  public function setSender($address, $name = null)
  {
    if ($name == null)
    {
      if (preg_match('/([^<]*)<([^>]*)>/u', $address, $ms) == 1)
      {
        $name = $ms[1];
        $address = $ms[2];
      }
    }
    parent::setSender($address, mb_encode_mimeheader(mb_convert_encoding($name,'iso-2022-jp','UTF-8'),'iso-2022-jp','B'));
  }
}
setFrom と setSender では、
田中<tanaka@hoge.com>
というフォーマットも解釈してくれるオマケつき。

トラックバック(0)

トラックバックURL: http://mikagamikobo.com/cgi/MTOS-4.21-ja/mt-tb.cgi/20

コメントする

2009年8月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

アーカイブ