Email Anhang wird nicht richtig übergeben

mtk-flo

Erfahrenes Mitglied
In Meiner Email, wird zwar der Email Anhang mit übergeben, aber dieser ist Leer...

Das liegt an meinen 2 Fehlermeldungen:

Warning: fread(): supplied argument is not a valid stream resource in ****
Warning: fclose(): supplied argument is not a valid stream resource in ****

Hier ist mein Code.
Was hab ich falsch gemacht ?!

PHP:
  $limitedext = array(".sas",".zip"); //Extensions you want files uploaded limited to.
   $sizebytes = "4096000"; //size limit in bytes ( 4 MB )
   $ext = strrchr($_FILES['programmfile']['name'],'.');
   
   if(($_FILES['programmfile']['size'] <= $sizebytes) && (in_array($ext,$limitedext)))
   {
   	copy ($_FILES['programmfile']['tmp_name'], "".$_FILES['programmfile']['name']);
   
 //		 mysql_query("INSERT INTO sasmax VALUES('','".$_POST['programname']."','','".$_POST['responsible']."','','".$_GET['catid']."','".$_POST['subcategory']."','1','".$_POST['desc']."','".$_POST['version']."','','','')");
 	echo "<table cellpadding='0' cellspacing='0' border='0' bgcolor='#F7F7F7' width='780' class='tab_rahmen'>
   	  <tr>
   		<td>
   		  <table border='0' cellspacing='1' cellpadding='5' align='center'>
   			<tr>
 			 <td class='comment' align='center'><b>Datensatz wurde erfolgreich eingetragen!<br><br>Es wurde eine Email an die Administratoren verschickt.<br> Nach erfolgreicher Prüfung wird der Datensatz in SASMAX Search aufgenommen.</b></td>
   			</tr>
   		  </table>
   		</td>
   	  </tr>
   	</table>
     <span class='leer'>&nbsp</span><br>";
   
   	$text = "Es wurde ein neues Programm in die SASMAX Datenbank eingetragen.";
 	$text .= "<br>Bitte melden Sie sich im Adminbereich an, um den Datensatz zu prüfen und zu Aktivieren";
 	$text .= "<br><br><a href='http://covs0009.ads.covidence.com/test/sasmax/sasmaxadmin.php'>Zum Admin-Bereich</a>";
   
   	$result = mysql_query("SELECT * FROM configuration WHERE smcfg_name = 'admin_email';");
   	$array = mysql_fetch_array($result);
   	$to_email = $array['smcfg_value'];
   	$email_to = str_replace(";",",",$to_email);
   //	  $betreff = "Es gibt einen neuen SASMAX Datensatz";
   /*********************************************************************************************/
   	$fileatt = ""; // Path to the file
   	$fileatt_type = "application/octet-stream"; // File Type
 	$fileatt_name = $_FILES['programmfile']['name']; // Filename that will be used for the file as the attachment
   
   	$email_from = "sasmax@accovion.com"; // Who the email is from
   	$email_subject = "Es gibt einen neuen SASMAX Datensatz"; // The Subject of the email
   	$email_message = $text; // Message that the email has in it
   
   //		$email_to = ""; // Who the email is too
   
   	$headers = "From: ".$email_from;
   
   
   
   	$semi_rand = md5(time());
   	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
   
   	$headers .= "\nMIME-Version: 1.0\n" .
 				"Content-Type: multipart/mixed;\n" .
 				" boundary=\"{$mime_boundary}\"";
   
   	$email_message .= "This is a multi-part message in MIME format.\n\n" .
   				    "--{$mime_boundary}\n" .
 				 "Content-Type:text/html; charset=\"iso-8859-1\"\n" .
 				 "Content-Transfer-Encoding: 7bit\n\n" .
   	$email_message . "\n\n";
   
   
   
 	/********************************************** First File ********************************************/
   
   
   	$fileatt = ""; // Path to the file
   	$fileatt_type = "application/octet-stream"; // File Type
 	$fileatt_name = $_FILES['programmfile']['name']; // Filename that will be used for the file as the attachment
   
   	$file = fopen($fileatt,'rb');
   	$data = fread($file,filesize($fileatt));
   	fclose($file);
   
   
   	$data = chunk_split(base64_encode($data));
   
   	$email_message .= "--{$mime_boundary}\n" .
 					 "Content-Type: {$fileatt_type};\n" .
 					 " name=\"{$fileatt_name}\"\n" .
 					 //"Content-Disposition: attachment;\n" .
 					 //" filename=\"{$fileatt_name}\"\n" .
 					 "Content-Transfer-Encoding: base64\n\n" .
 					 $data . "\n\n" .
 					 "--{$mime_boundary}\n";
   	unset($data);
   	unset($file);
   	unset($fileatt);
   	unset($fileatt_type);
   	unset($fileatt_name);
   
   
 	/********************************************** End of File Config ********************************************/
   
 	// To add more files just copy the file section again, but make sure they are all one after the other! If they are not it will not work!
   
   
   	$ok = @mail($email_to, $email_subject, $email_message, $headers);
   
   	if($ok) {
   	echo "<font face=verdana size=2>The file was successfully sent!</font>";
   	} else {
   	die("Sorry but the email could not be sent. Please go back and try again!");
   	}
   }
 
Zurück