mailen met attachment

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim

Wim

12/12/2006 14:17:00
Quote Anchor link
Op php.net bij de mail functie heb ik bij de gebruikers opmerkingen een mooi voorbeeld gevonden om een mail met attachment te versturen.

Ik heb het script aangepast naar mijn situatie, en ik heb nu op 1 ding na alles werkend.
Ik krijg nu netjes een mail + attachment, echter het script heeft op een of andere manier onder aan het attachment 1 regel met "rotzooi" gezet.

Op php.net is het 't script van jcwebb at dicoe dot com 08-Feb-2006 11:16.
Misschien heeft iemand zin om er een blik op te werpen.

De rotzooi die aan het attachment wordt toegevoegd is:
‰íz{SÊ—¦º[b¥ªíý©mz¹Ú¶+Þ

Ik vermoed dat het heeft te maken met de vaststelling van deze variabele:
$mime_boundary=md5(time());
En vervolgens het aanroepen ervan:
$msg .= "--".$mime_boundary.$eol;

Als ik het goed begrepen heb wordt dit gebruikt om een scheiding te maken tussen de diverse delen van de mail. (multipart).

Hieronder volgt mijn versie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function mail_presentielijst($afd_lokatie){
# Is the OS Windows or Mac or Linux
if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
  $eol="\r\n";
}
elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
  $eol="\r";
}
else {
  $eol="\n";
}


# File for Attachment
if (!file_exists("c:/inetpub/wwwroot/produktie/presentielijst/presentielijst_$afd_lokatie.html")) {echo "Het attachment bestaat niet."; exit;}
$f_name="c:/inetpub/wwwroot/produktie/presentielijst/presentielijst_$afd_lokatie.html";    // use relative path OR ELSE big headaches. $letter is my file for attaching.
$handle=fopen($f_name, 'rb');
$f_contents=fread($handle, filesize($f_name));
$f_contents=chunk_split(base64_encode($f_contents));    //Encode The Data For Transition using base64_encode();
$f_type=filetype($f_name);
fclose($handle);
# To Email Address
$emailaddress="naam@domain";
# Message Subject
$emailsubject="Presentielijst";
# Message Body
//Niet nodig.

# Common Headers

$headers .= 'From: B. de V. <bvs@domain>'.$eol;
$headers .= 'Reply-To: B. de V. <bvs@domain>'.$eol;
$headers .= 'Return-Path: B. de V. <bvs@domain>'.$eol;    // these two to set reply address
$headers .= "X-Mailer: PHP v".phpversion().$eol;          // These two to help avoid spam-filters
# Boundry for marking the split & Multitype Headers

$mime_boundary=md5(time());
$headers .= 'MIME-Version: 1.0'.$eol;
$headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol;
$msg = "";

# Attachment
$msg .= "--".$mime_boundary.$eol;
$msg .= "Content-Type: text/html; name=\"presentielijst_$afd_lokatie.html\"".$eol;  // sometimes i have to send MS Word, use 'msword' instead of 'pdf'
$msg .= "Content-Transfer-Encoding: base64".$eol;
$msg .= "Content-Disposition: attachment; filename=\"presentielijst_$afd_lokatie.html\"".$eol.$eol; // !! This line needs TWO end of lines !! IMPORTANT !!
$msg .= $f_contents.$eol.$eol;
# Setup for text OR html
$msg .= "Content-Type: multipart/alternative".$eol;

# Finished
$msg .= "--".$mime_boundary."--".$eol.$eol;  // finish with two eol's for better security. see Injection.

# SEND THE EMAIL

ini_set(sendmail_from,'bvs@domain');  // the INI lines are to force the From Address to be used !
  mail($emailaddress, $emailsubject, $msg, $headers);
ini_restore(sendmail_from);

//Verwijder attachment(s).
unlink ("c:/inetpub/wwwroot/produktie/presentielijst/presentielijst_$afd_lokatie.html");
}

?>


Iemand suggesties?



Oplossing:

//$msg .= "Content-Type: multipart/alternative".$eol;

Als ik die comment dan gaat alles wel goed, en komt er geen rotzooi meer in het attachment te staan.

Nu is het alleen nog even een kwestie van de code begrijpen en netjes maken, maar dat gaat nu wel lukken.

Nooit gedacht dat googlen op "‰íz{SÊ—¦º[b¥ªíý©mz¹Ú¶+Þ" iets zou opleveren. :P
Gewijzigd op 01/01/1970 01:00:00 door Wim
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.