Я отправляю почту, используя пакеты PEAR mail и mail_mime и пример кода:
$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);
У меня возникает странная проблема при отправке писем через этот код. У меня есть изображения внутри тела электронной почты, иногда изображения не отображаются. Когда я отлаживаю проблему, я обнаружил, что в url изображения отсутствует .
. Но если я печатаю почту непосредственно перед линией отправки (как я комментирую код), она отлично печатает изображение.
правильный URL-адрес изображения: http://www.domain.com/image.png
по почте: http://www.domaincom/image.png
или http://www.domain.com/imagepng
... и т.д.
часть кода HTML, которая имеет изображение, как показано ниже:
<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>
И очень странно, что он правильно отображается в Outlook, но не в других клиентах, так как для Outlook я имею отдельный код (в соответствии с кодом).
Кто-нибудь знает, как отладить проблему или какие-либо комментарии по этой проблеме.
Отредактировано:
Эта проблема не имеет никакого отношения к какому-либо конкретному тегу (хотя я объясняю его с помощью тега изображения), я испытываю его в нескольких местах, например, в стилях.
example: line-heigth:1.5;
является оригиналом, и при отправке он изменяется на line-heigth:15;
.
В основном он просто удаляет .
здесь и там в HTML-сообщении электронной почты.