I've got a PHP email script that sends me an email with the file attachment that the user specifies.
Example here: http://www.designcen...nz/ultimatetest
Everything works fine with just one attachment but I want to add another attachment or maybe even a total of three.
The code that I am using as follows:
index.html
<html> <head> <title>Send an Email</title> </head> <body> <h1>Send an Email</h1> <form action="mail.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="to" value="bradley@bradleykirwan.co.nz" /> <p> Email: <input type="text" name="from" value="" /><br /> Subject: <input type="text" name="subject" value="" /></p> <p>Message:<br /> <textarea cols="70" rows="20" name="message"></textarea></p> <p>File Attachment: <input type="file" name="fileatt" /></p> <p>File Attachment: <input type="file" name="fileatt2" /></p> <p>File Attachment: <input type="file" name="fileatt3" /></p> <p><input type="submit" value="Send" /></p> </form> </body> </html>
mail.php
<?php
// Read POST request params into global vars
$to = $_POST['to'];
$from = $_POST['from'];
$subject = $_POST['subject'];
$message = $_POST['message'];
// Obtain file upload vars
$fileatt = $_FILES['fileatt']['tmp_name'];
$fileatt_type = $_FILES['fileatt']['type'];
$fileatt_name = $_FILES['fileatt']['name'];
$headers = "From: $from";
if (is_uploaded_file($fileatt)) {
// Read the file to be attached ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generate a boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Add the headers for a file attachment
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Add a multipart boundary above the plain message
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode the file data
$data = chunk_split(base64_encode($data));
// Add file attachment to the message
$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";
}
// Send the message
$ok = @mail($to, $subject, $message, $headers);
if ($ok) {
echo "<p>Mail sent! Yay PHP!</p>";
} else {
echo "<p>Mail could not be sent. Sorry!</p>";
}
?>
So as you can see, I need to add fileatt2 and fileatt3 to the mail.php script so that the form can process up to three attachments.
I'm very new to PHP so any help will be appreciated.
Thank you kindly.

New Topic/Question
Reply




MultiQuote




|