Log in

View Full Version : attaching a file for mail



ebichuhamster
08-19-2010, 02:20 AM
Thankyou in advance for taking a look at this.
Been at this for a long while.

I don't usually take such challenges when I know I don't have the experience or the knowledge but this task has gotten the best of me.

my code is the following



<?php
if(isset($_POST['submit'])){

$email_from = $_POST['owner_email']; // Who the email is from
$email_subject = "asf"; // The Subject of the email
$email_message = "asdf"; // Message that the email has in it

$email_to = "ebichuhamster+mailtest@gmail.com"; // 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 = $_FILES['file']['tmp_name']; // Path to the file
$fileatt_type = "application/octet-stream"; // File Type
$fileatt_name = "thegame.jpg"; // Filename that will be used for the file as the attachment

$file = fopen($fileatt,'r+');
//$data = fread($file,filesize($fileatt));
//fclose($file);


$data = chunk_split(base64_encode($file));

$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);


/********************************************** Second File ********************************************/



/********************************************** 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!");
}
}
?>


to collect the data im using a standard input file tag on the HTML.

from what I understand, the file must be temporarily upoloaded to the server. This is done with simple html. To acces the file i use the $_FILES superglobal.

When I upload the whole php file to a server on godaddy, run, it simply says the email failed to send. With no errors.

Btw i found this code on line, so maybe thats's important...

ebichuhamster
08-19-2010, 07:40 AM
maybe the code as a little too unreadable so im going to use my working email sending script and ask how do I add an attachment


<?php

if(isset($_POST['submit'])){
$to = "myemal@mydomain.com";
$subject = $_POST['subject'];

$message = $_POST['message'];
$headers = $_POST['from'];
$mail_sent=@mail($to, $subject, $message, $headers);}
?>

a requirement is that it should accept only image files

thanks again