Zend_Mailで送信したメール本文の頭が一行改行されるバグ
現時点での最新版である ZF1.7.6 にて確認。
原因
Mail/Transport/Abstract.php
上記ファイルに問題あり。
<?php private function _prepareHeaders()
メソッド内でヘッダーの設定をしているのですが、
<?php foreach ($headers as $header => $content) { if (isset($content['append'])) { unset($content['append']); $value = implode(',' . $this->EOL . ' ', $content); $this->header .= $header . ': ' . $value . $this->EOL; } else { array_walk($content, array(get_class($this), '_formatHeader'), $header); $this->header .= implode($this->EOL, $content) . $this->EOL; } }
この処理内で、$this->EOL(\r\n)を最後に余計に付与しているので改行が発生します。
解決法
_prepareHeaders()メソッドの最後に、<?php $this->header = trim($this->header);
みたいに、改行を除去する処理を追加するだけです。
ちなみに、http://vector.jugem.jp/?eid=71 こちらのエントリーで同じ事が書かれていますが、かなり前のバージョンです。
未だになおらないという事は、もしかしてバグと認識されてないのかも…?
親切心?