2009-04-06 3 views
2

Ich muss eine E-Mail mit mehreren Bildanhängen von PHP senden. Ich habe derzeit einen Test eingerichtet, der zwei hart codierte Bilder verwendet. Ich kompiliere die E-Mail mit allen notwendigen Kopfzeilen und sende sie aus. Wenn ich es jedoch erhalte, zeigt es nur das erste Bild als Anhang an. Das zweite Bild scheint ignoriert zu werden (getestet mit Groupwise und Google Mail).Kompilieren von E-Mail mit mehreren Anhängen in PHP

Wenn ich die Quelle meiner E-Mail die folgende sehe, was ich nach den vom Server generierten Headern sehe. Offensichtlich sind beide Attachments (Bilder) da, aber nur das erste zeigt sich als Attachment.

Jede Hilfe würde sehr geschätzt werden.

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-- 
+1

Können Sie uns Code zeigen? Extrem schwierig sonst zu diagnostizieren. – karim79

Antwort

7

aus dem Gedächtnis gehen:

SaHPETExQ6HQ0BB4Z8FwTr/KHVc/AJ98jIf2BGdKAAAAAElFTkSuQmCC 

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

--==Multipart_Boundary_x38e1b83d34375e183a2fdcd6a9c001f8x 

Sie nicht zwei Grenzen nebeneinander haben sollte, und die „-“ am Ende ist nur für das Ende des letzten Teils .

+0

Danke. Ich hatte den Eindruck, dass die Zeile mit - einen bestimmten Block beendete. Wird am Morgen getestet. – Luke

+1

Genau das war das Problem. Vielen Dank! – Luke

1

Ist ganzer Brief als multipart/mixed wie es sein sollte?

$headers .= 'MIME-Version: 1.0'. "\n"; 
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"". "\n"; 
+0

Ich begann damit, aber es schien keinen Unterschied zu machen. Werde es noch einmal am Morgen versuchen. – Luke

2

Wenn es für Ihren Zweck in Ordnung ist, können Sie versuchen, PHPMailer10 (lizenziert unter LGPL) zu verwenden. Es ist sehr, sehr einfach zu bedienen und behandelt alle komplizierten Mail-Sachen für Sie.

+0

Danke! Ich werde mich definitiv darum kümmern. – Luke