login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem bij mailen met bijlage

Offline Jorisvh - 24/01/2013 17:04
Avatar van JorisvhLid Hallo

Kan iemand de fout in deze code vinden?
Mijn berichttekst wordt goed verstuurd maar niet de bijlage!! deze blijkt leeg te zijn volgens mijn mailprogramma! Hoe komt dat?

Ziehier mijn code:
  1. <?
  2.  
  3. function bijlage() {
  4. global $bijlage, $bijlage_type, $bijlage_name, $bijlage_size, $headers, $message, $van;
  5. $van = "info@ideeenhuisgeraardsbergen.be";
  6. $bijlage_naam = $_FILES['bijlage']['name'];
  7. $bijlage_type = $_FILES['bijlage']['type'];
  8. $bijlage_size = $_FILES['bijlage']['size'];
  9. $message = $_POST['bericht'];
  10. //echo "Bericht:<br>".$message;
  11. //echo "bijlage: ".$_FILES['bijlage']['name']."<br>";
  12. //if($bijlage=="none")
  13. //$pos = strpos($message,"<html>");
  14. //$message = stripslashes($message);
  15. //if($pos===false)
  16. //{
  17. $message = "<html><head><title></title>
  18. <body>".$message."</body></html>";
  19. //}
  20.  
  21. if($bijlage_naam=="")
  22. {
  23. $headers = "MIME-Version: 1.0\r\n";
  24. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  25. $headers .= "From:" .$van."\r\n";
  26. $headers .= "Reply-To: ".$van."\r\n";
  27. $headers .= "Return-Path: ".$van."\r\n";
  28. }else{
  29. $boundary=uniqid("");
  30. $headers = "From: ".$van."\r\n".
  31. "Reply-To:".$van."\r\n".
  32. "Content-type: multipart/mixed; boundary=\"$boundary\"";
  33. if ($bijlage_type) $mimeType = $bijlage_type;
  34. else $mimeType = "application/unknown";
  35. $fileName = $bijlage_naam;
  36. $fp = fopen($_FILES['bijlage']['tmp_name'], "r");
  37. $read = fread($fp, $_FILES['bijlage']['size']);
  38. $read = base64_encode($read);
  39. $read = chunk_split($read);
  40. $message = "--$boundary
  41. Content-type: text/html; charset=iso-8859-1
  42. Content-transfer-encoding: 8bit
  43.  
  44. $message
  45.  
  46. --$boundary
  47. Content-type: $mimeType; name=$fileName
  48. Content-disposition: attachment; filename=$fileName
  49. Content-transfer-encoding: base64
  50. $read
  51. --$boundary--";
  52. }//end if bijlage
  53. }//end bijlage()
  54.  
  55. ?>
  56. <html>
  57. <head>
  58. <title></title>
  59. <script type="text/javascript" src="../ajax.js"></script>
  60. <script type="text/javascript" src="../tinymce/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
  61. <script type="text/javascript">
  62. tinyMCE.init({
  63. mode : "textareas",
  64. theme : "simple"
  65. });
  66.  
  67. function formcheck() {
  68. ond=document.frmgroep.Onderwerp.value;
  69. if(ond=="") {
  70. alert("Gelieve het onderwerp in te vullen!");
  71. document.frmgroep.Onderwerp.focus();
  72. return false;
  73. }
  74.  
  75. vraag=confirm("Weet je zeker dat je deze mail sturen?")
  76. if (vraag==true) {
  77. alert("De gegevens worden nu verzonden!");
  78. }
  79. else {
  80. return vraag;
  81. }
  82. }
  83. }
  84. //-->
  85. </script>
  86.  
  87. </head>
  88. <body>
  89. <a href="./menu.php">Hoofdmenu</a> <br>
  90. <h1>Groepsmail versturen</h1>
  91. <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" onSubmit="return formcheck()" name="frmgroep" id="frmgroep">
  92. <table>
  93. <tr>
  94. <td>Onderwerp:</td>
  95. <td><input type="text" name="Onderwerp" size="50"></td>
  96. </tr>
  97. <tr>
  98. <td>Bijlage:</td>
  99. <td><input name="bijlage" type="file"></td>
  100. </tr>
  101. </table>
  102. Bericht: <br>
  103. <textarea name="bericht" rows="10" cols="100">
  104. <br><br>
  105. Ideeenhuis Geraardsbergen<br>
  106. Marcel De Sloover<br>
  107. Vredestraat 20<br>
  108. 0494 45 29 15<br>
  109. 9500 Geraardsbergen<br>
  110. info@ideeenhuisgeraardsbergen.be<br>
  111. www.ideeenhuisgeraardsbergen.be
  112.  
  113. </textarea>
  114. <br><input type="submit" name="verzenden" value="Verzenden">
  115. </form>
  116. <?
  117. if (isset($_POST['verzenden'])) {
  118.  
  119. bijlage();
  120. $subject = $_POST['Onderwerp'];
  121. $to = "joris.vroem@belgacom.net";
  122.  
  123.  
  124. if(mail($to, $subject, $message, $headers))
  125. echo "<br>Verstuurd naar:".$to;
  126. else
  127. echo "<br>Niet verstuurd naar ".$to;
  128.  
  129. }//end if verzenden
  130. ?>
  131. </body>
  132. </html>

5 antwoorden

Gesponsorde links
Offline Martijn - 24/01/2013 17:18
Avatar van Martijn Crew PHP wat als je een regel onder je globals in je eerste functie dit plaatst:
  1. print_r($_FILES['bijlage']);
Offline Jorisvh - 24/01/2013 17:25 (laatste wijziging 24/01/2013 17:28)
Avatar van Jorisvh Lid
Martijn schreef:
wat als je een regel onder je globals in je eerste functie dit plaatst:
[..code..]


  1. Array ( [name] => 2013-1-3_Pannenkoekenbak.jpg [type] => image/jpeg [tmp_name] => /tmp/phphS6Bzk [error] => 0 [size] => 202746 )


Waarom: /tmp/phphS6Bzk [error]??
Offline marten - 24/01/2013 20:11 (laatste wijziging 24/01/2013 20:18)
Avatar van marten Beheerder Stel hier eens een grotere waarde in dan je size van je bijlage 40000 bijvoorbeeld:

$read = fread($fp, $_FILES['bijlage']['size']);

Ik zou liever zien dat je gebruik maakt van PHP.net: file_get_contents omdat die veel minder code vraagt.

Verder mis ik de \r\n bij de verschillende regels

Die temp naam bedenkt PHP voor je. Daar zou ik niet te bang voor zijn.
Offline Jorisvh - 24/01/2013 22:03 (laatste wijziging 24/01/2013 22:03)
Avatar van Jorisvh Lid Na veel zoeken en vergelijken heb ik dit gevonden:
  1. Content-transfer-encoding: base64
  2. $read
  3. --$boundary--";

moet worden:
  1. Content-transfer-encoding: base64
  2.  
  3. $read
  4.  
  5. --$boundary--";

Let op de vrije regels boven en onder '$read'
Nu werkte het wel bij mij!!!
Offline marten - 24/01/2013 23:38
Avatar van marten Beheerder Zoals ik al zei, als je voor bij regel 1 en 5 zorgt voor een \r\n constructie heb je daar geen last van. Kijk je andere regels ook even na om rariteiten te voorkomen.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s