トップ «前の日記(2007-12-20) 最新 次の日記(2008-02-04)» 編集

いしなお!

2002|01|02|03|04|05|06|07|08|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|02|03|04|07|
2009|03|

2007-12-25 [長年日記]

_ [Zend_Mail][PHP] Zend_Mailで日本語ヘッダ要素を登録

mb_encode_mimeheader()してから、setSubject()とかしただけだと、"\r"とか"\n"とかが"?"に変換されてしまうんで、

function encode_mimeheader_for_zendmail($str)
{
  return strtr(mb_encode_mimeheader($str, 'iso-2022-jp'), array("\r" => '', "\n" => '');
}

みたいなものをかましておくのが正解か*1

っつーか"?"がZend_Mail内で変換されていたことになかなか気づかなかったよ。てっきりメールサーバーの問題だと思ってしまっていた。

*1 strtr($str, "\r\n", "")だとうまく動かなかったんでstrtr($str, array("\r" => "", "\n" => ""))に変更

本日のツッコミ(全3件) [ツッコミを入れる]
_ twk (2008-02-07 22:16)

こんにちは。トラックバックもさせてもらったのですが、これってメールヘッダーの仕様上は問題にならないのでしょうか。<br>あまり詳しくないのですが、メールヘッダーの仕様上長い場合改行があるべきなのかな、と思いまして。確かに手元の環境では受信できましたので、Zend_Mail内かmail関数等でその辺りの対応はしてくれるのでしょうか。よろしければおしえていただけると嬉しいです。

_ ZJYoshida (2008-09-03 00:32)

こんにちは<br>Zend Frameworkのupdate権限を持つ人でプログラム自体をupdateできる人がほとんどいません。<br>ぜひZend Frameworkのコミュニティーにご協力くださいませ

_ ZJYoshida (2008-09-03 23:24)

こんにちは<br><br>日本人でソースコードのupdate権限所持者が3名だけなので、ぜひ開発コミュニティーに参加していただけると助かります。

本日のTrackBacks(全2件) []
_ ふらっと:Zend_Mailの日本語(のみならず)対応がいまいちです (2008-02-07 22:12)

Zend_Mailを使って色々試していたのですが、長めの件名等をうまく扱えず、実用には厳しそうです。
まず、普通のやり方はこんな感じだと思います。

$transPort = null; // set if smtp
$encoding = 'ISO-202

_ MOVION.net:Zend_MailのsetSubjectが僕をいじめる (2008-03-05 02:31)

Zend_MailとSmartyを組み合わせた、メール送信のクラスを作ってみたのですが、
どうも長いタイトルのメールを送ると、タイトルの途中に「?」が入るからソースを見てみたら。



&nbsp; &nbsp;p...