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 こちらのエントリーで同じ事が書かれていますが、かなり前のバージョンです。

未だになおらないという事は、もしかしてバグと認識されてないのかも…?

親切心?