Компиляция электронной почты с несколькими вложениями в PHP - PullRequest
2 голосов
/ 06 апреля 2009

Мне нужно отправить письмо с несколькими вложениями изображений из PHP. В настоящее время у меня есть тестовый набор, который использует два жестко закодированных изображения. Я собираю письмо со всеми необходимыми заголовками и отправляю его. Однако, когда я получаю его, он показывает только первое изображение в качестве вложения. Второе изображение, кажется, игнорируется (протестировано с Groupwise и Gmail).

Когда я просматриваю источник своей электронной почты, я вижу следующее, когда сервер генерирует заголовки. Очевидно, что оба вложения (изображения) находятся там, но только первое отображается как вложение.

Любая помощь будет принята с благодарностью.

This is a multi-part message in MIME format.

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

my message text

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x
Content-Type: image/gif;
 name="image1.gif"
Content-Disposition: attachment;
 filename="image1.gif"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAIAAAALR8HoAAABgElEQVQoFZWQzSuEURTG7z3n3Pt+

*[-- snip --]*

SaHPETExQ6HQ0BB4Z8FwTr/KHVc/AJ98jIf2BGdKAAAAAElFTkSuQmCC

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x--

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x
Content-Type: image/gif;
 name="image2.gif"
Content-Disposition: attachment;
 filename="image2.gif"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAKMAAAAyCAIAAAC/NPwxAAAAA3NCSVQICAjb4U/gAAAACXBIWXMA

*[-- snip --]*

yh4+kv39P/vticlfC0Muodov+5posktKGGb7/2pscsAoKykp2W8fTH4Exv1tEEbD3NNGwbi/y8do
mNnbKPwf2Oju7uv54J4AAAAASUVORK5CYII=

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x--

Ответы [ 3 ]

7 голосов
/ 06 апреля 2009

Из памяти:

SaHPETExQ6HQ0BB4Z8FwTr/KHVc/AJ98jIf2BGdKAAAAAElFTkSuQmCC

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x--
^^^ DELETE THIS LINE ^^^

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x

У вас не должно быть двух границ рядом друг с другом, а "-" в конце означает только конец last .

2 голосов
/ 06 апреля 2009

Если это нормально для вашей цели, вы можете попробовать использовать PHPMailer (лицензируется по LGPL ) Он очень прост в использовании и обрабатывает все сложные почтовые сообщения для вас.

1 голос
/ 06 апреля 2009

Вся почта объявлена ​​как multipart/mixed, как и должно быть?

$headers .= 'MIME-Version: 1.0'. "\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"". "\n";  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...