[PHP] Mailen met attachment.

Pagina: 1
Acties:
  • 49 views sinds 30-01-2008

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Ik heb in de search heel veel hierover gevonden, en daarom schaam ik me ook kapot.
Maar hij doet het niet.

Ik heb deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  $headers = "From:ESTEC <tegroen@home.nl>\n";
  $headers .= "Content-Type: text/html;charset=iso-8859-1";

  $x = 1;
    $attachment_name = $_FILES["attachment". $x]["name"];
    $attachment_tmp_name = $_FILES["attachment". $x]["tmp_name"];
    $type = $_FILES["attachment". $x]["type"];
    $data = fread(fopen($attachment_tmp_name, "r"), filesize($attachment_tmp_name));
    $attachment = chunk_split(base64_encode($data));
    $boundry = "------=MIME_BOUNDRY_main_message"; 
    $body .= "\n\n--". $boundry;
    $body .= "\nContent-Type:". $type. ";";
    $body .= "\n\tname=\"". $attachment_name. "\";";
    $body .= "\nContent-Transfer-Encoding: base64";
    $body .= "\nContent-Disposition: attachment;";
    $body .= "\n    filename=\"". $attachment_name. "\"";
    $body .= "\n\n". $attachment;
  }

  mail($address, $_POST["subject"], $body, $headers);


Hij verstuurt de mail wel, maar de hele attachment komt in de message.
Het zijn dan allemaal rare tekens.

Als ik echter andere voorbeelden gebruik van oa
http://nl2.php.net/manual/nl/ref.mail.php
(bijna onderaan)
Dan krijg ik een mail die helemaal nix heeft. Geen content, geen attachment.
Kan iemand mij alsjeblieft helpen?

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Het zou handig zijn als je ook een MIME-Version header meestuurt, en een Content-Type header die aangeeft dat je iets van het type multipart/mixed verstuurt, en waarin je aangeeft wat de boundary precies is..
Dit is echt héél goed gedocumenteerd.

[ Voor 13% gewijzigd door Verwijderd op 21-03-2004 21:06 ]


  • Guillome
  • Registratie: Januari 2001
  • Niet online
Het voorbeeld van Php.net doet het bij mij ook niet goed:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php 

// some local variables 
$from_name = "Sender Name"; 
$from_email = "tegssroen@home.nl"; 
$to_name = "Wim"; 
$to_email = "tegroessn@home.nl"; 
$subject = "Fantastic Subject"; 

// headers need to be in the correct order... 
$headers = "From: $from_name<$from_email>\n"; 
$headers .= "Reply-To: <$from_email>\n"; 
$headers .= "MIME-Version: 1.0\n"; 
// the following must be one line (post width too small) 
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"---- =MIME_BOUNDRY_main_message\"\n"; 
// 
$headers .= "X-Sender: $from_name<$from_email>\n"; 
$headers .= "X-Mailer: PHP4\n"; //mailer 
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal 
$headers .= "Return-Path: <$from_email>\n"; 
$headers .= "This is a multi-part message in MIME format.\n"; 
$headers .= "------=MIME_BOUNDRY_main_message \n"; 
$headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_message_parts\"\n"; 

//plaintext section begins 
$message = "------=MIME_BOUNDRY_message_parts\n"; 
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
$message .= "Content-Transfer-Encoding: quoted-printable\n"; 
$message .= "\n"; 

// your text goes here 
$message .= "blah blah -- plaintext versionasd of the message\n"; 
$message .= "\n"; 

// html section begins 
$message .= "------=MIME_BOUNDRY_message_parts\n"; 
$message .= "Content-Type: text/html;\n    charset=\"iso-8859-1\"\n"; 
$message .= "Content-Transfer-Encoding: quoted-printable\n"; 
$message .= "\n"; 

// your html goes here -- It didn't appear properly without 
// the weird markup that outlook added after sending 
$message .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"; 
$message .= "<HTML><BODY>\n"; 
$message .= "blah blah -- html version of the message\n"; 

// look ma, I'm referencing an img attachment (see below) 
// watch out for weird markup!!! 
$message .= "asdasdasdasdasd\n"; 
$message .= "</BODY></HTML>\n"; 
$message .= "\n"; 

// this ends the message part 
$message .= "------=MIME_BOUNDRY_message_parts--\n"; 
$message .= "\n"; 

// now we add attachments (images, etc) 
$message .= "------=MIME_BOUNDRY_main_message\n"; 
$message .= "Content-Type: image/gif; \n name=\"some_picture.gif\"\n"; 
$message .= "Content-Transfer-Encoding: base64\n"; 
$message .= "Content-ID: <some_picture>\n"; 
$message .= "\n"; 
// (truncated for space) 
$message .= "R0lGODlheAAZAKIHAMTExCQkJJOTk\n"; 
$message .= "eLo7wzDKSatVQ5R3u7dDUUjcZ34D\n"; 
$message .= "\n"; 
// etc...etc...etc... 

//message ends 
$message .= "------=MIME_BOUNDRY_main_message--\n"; 

// send the message :-) 
mail("tegroen@home.nl", $subject, $message, $headers); 

?>

En hier zitten al die headers wel goed in.
Waarom werkt deze dan nog niet goed?

[ Voor 28% gewijzigd door Guillome op 21-03-2004 23:10 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Verwijderd

Misschien de documentatie eens lezen ipv copy/paste :Z

  • Guillome
  • Registratie: Januari 2001
  • Niet online
Kan je me de link geven naar die documentatie? Ik kan m niet vinden eigelijk.
Ik snap het ook niet, ik maak een mail volgens de opbouw van een goede email, maar nog werkt het niet. :'(

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:27

.oisyn

Moderator Devschuur®

Demotivational Speaker

[google=mail headers attachment php]
http://www.theukwebdesign.../php-file-attachments.php

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.