2

我需要从 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--
4

3 回答 3

7

从记忆出发:

SaHPETExQ6HQ0BB4Z8FwTr/KHVc/AJ98jIf2BGdKAAAAAElFTkSuQmCC

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

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x

您不应该有两个相邻的边界,并且末尾的“--”仅用于最后一部分的末尾。

于 2009-04-06T07:37:04.163 回答
2

如果您的目的没问题,您可以尝试使用PHPMailer(在LGPL下获得许可)。它非常易于使用,可以为您处理所有复杂的邮件。

于 2009-04-06T09:54:30.230 回答
1

整封邮件是否multipart/mixed按应有的方式声明?

$headers .= 'MIME-Version: 1.0'. "\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"". "\n";  
于 2009-04-06T07:31:30.713 回答