estão faltando pontos (.) s aqui e ali no html de email ao enviar emails do PEAR Mail_Mime
Estou enviando um email usando os pacotes mail e mail_mime do PEAR e o código de exemplo, conforme abaixo:
$sendStart=array();
require_once('Mail.php');
require_once('Mail/mime.php');
$sendStart['mail'] =& Mail::factory('mail');
$sendStart['mime'] = new Mail_mime("\n");
$sendStart['mime']->setHTMLBody($html);
$sendStart['headers']['Subject']=$title;
$sendStart['headers']['X-SMTPAPI']='{"category": ["MailID-XXX"]}';
$body=$sendStart['mime']->get(array(
'html_charset'=>'UTF-8',
'text_charset'=>'UTF-8',
'head_charset'=>'UTF-8'
));
//echo ($sendStart['mime']->_htmlbody); exit;
$sendStart['mail']->send('[email protected]',$sendStart['mime']->headers($sendStart['headers']),$body);
Estou enfrentando um problema estranho ao enviar os e-mails por esse código. Tenho imagens dentro do corpo do email, às vezes as imagens não são exibidas. Quando depuro o problema, descobri que.
está faltando no URL da imagem. Mas se eu imprimir o e-mail logo antes da linha de envio (como comento no código), ele será impresso com a imagem perfeitamente.
URL correto da imagem:http://www.domain.com/image.png
no correio :http://www.domaincom/image.png
ouhttp://www.domain.com/imagepng
... etc.
parte do código HTML com a imagem abaixo:
<table cellpadding="0" cellspacing="0" border="0" class="image-table image-2" align="center" style="float:none;margin-left:auto;margin-right:auto;text-align:left;">
<tbody>
<tr>
<td class="element" style="text-align: left;height: auto;overflow: hidden;-webkit-text-size-adjust: none;">
<!--[if gte mso 9]><img alt="Placeholder Image" src="http://www.domain.com/image.png" style="outline: none; text-decoration: none; display: block; clear: none; float: none; margin-left: auto; margin-right: auto;display:none; mso-hide: none;" align="center" width="394"><![endif]--><![if !mso]><!-- --><img alt="Placeholder Image" src="http://www.domain.com/image.png" style="outline: none;text-decoration: none;display: block;clear: none;float: none;width: 100%;height: auto;max-width: 394px;margin-left: auto;margin-right: auto;*width: 394px;-ms-interpolation-mode: bicubic;" align="center"><!--<![endif]-->
</td>
</tr>
</tbody>
</table>
E o mais estranho é que ele está sendo exibido corretamente no Outlook, mas não em outros clientes, pois para o Outlook eu tenho um código separado (conforme o código).
Alguém tem alguma idéia de como depurar o problema ou qualquer comentário sobre esse problema.
Editado:
Esse problema não tem nada a ver com nenhuma tag específica (embora eu a explique usando uma tag de imagem), eu a experimentei em vários lugares, como em estilos.
exemplo:line-heigth:1.5;
é o original e muda paraline-heigth:15;
durante o envio.
Basicamente, basta remover o.
aqui e ali no email HTML.