У меня была проблема, когда некоторые почтовые клиенты отображали все встроенные изображения в виде пустых полей.
Что я обнаружил, так это то, что класс PEAR Mail_mime попытается исправить ваши ссылки Content-ID для вас, если не указан domainID.
e.g.
[HTML] src="123456.jpg"
[Headers] Content-ID: <123456.jpg>
updates to
[HTML] src="cid:123456.jpg@domain.com"
[Headers] Content-ID: <123456.jpg@domain.com>
BUT
[HTML] src="cid:123456.jpg"
[Headers] Content-ID: <123456.jpg>
updates to
[HTML] src="cid:123456.jpg"
[Headers] Content-ID: <123456.jpg@domain.com>
Разрывает связь между тегом HTML и вложением MIME.
Этот ответ помог мне
Поэтому наилучшим решением будет включение доменного идентификатора в Content-ID самостоятельно перед отправкой электронного письма.
Я отправлял несколько отдельных писем в цикле. Каждое письмо должно было быть одинаковым, только получатели в заголовке менялись для каждой итерации. Я обнаружил, что первое электронное письмо было отправлено правильно, а затем на втором и последующих письмах был виден контент Content-ID.
Первоначальное тестирование в Outlook не выявило проблему (изображения были в порядке). Только тестирование в Gmail выявило ошибку. Однако Gmail не будет показывать вам атрибут src, если обнаружит недопустимые данные, поэтому вы не можете увидеть проблему только с проверкой в сообщении электронной почты в Gmail.