PEAR Mail_Mime i problemy z osadzonymi obrazkami

PEAR Mail_Mime i problemy z osadzonymi obrazkami

Podczas moich bojów programistycznych trafiłem na dziwny problem z wysyłaniem emaili z osadzonymi obrazkami. Teoretycznie biblioteka Mail_Mime z PEAR a rozwiązuje wszystkie problemy związane z wysłaniem i osadzaniem obrazków w emailach. Niestety niespodziewanie wysłane maile miały widoczne obrazki tylko w Thunderbirdzie pozostałe czytniki w tym Macowy Mail… nie widział obrazków.

Cały diabeł tkwił w małym szczególe związanym z tym, że nie wiedzieć czemu PEAR przy kodowaniu załączników do CIDa obrazka zamiast znaczka @ dodaje %40 – jednym słowem coś przesadzono z kodowaniem. Rozwiązanie polega na bardzo brzydkim spatchowaniu PEARa a konkretnie pliku mime.php – interesuje nas funkcja &get robimy hardcorowy replace funkcji:

$this->_html_images[$i]['cid'] = $this->_html_images[$i]['cid'] . $domain;

na

$this->_html_images[$i]['cid'] = $this->_html_images[$i]['cid'] . str_replace('%40', '@', $domain);