From a form, via wp_mail function, I'm trying to send an email with an attachment, without upload the file to the file manager. I'm getting the email with an attachment. But the attachment name not correct and no file type. Please help to solving this.
This is HTML form
<form action="POST" enctype="multipart/form-data">
<table>
<input type="file" name="Attached">
<input type="Submit" name="Submit">
</table>
</form>
There is my PHP Code
if (isset($_POST['Submit'])) {
$attachments = $_FILES['Attached']['tmp_name'];
$recipients = "[email protected]";
$SenderName = get_bloginfo('name');
$SenderEmail = "[email protected]";
$body = "How are you what are you doing now. bla bla bla";
$recipients = array($to);
$headers[] = "From: $SenderName <$SenderEmail>" . "\r\n";
$headers[] = "Content-Type: text/html";
$subj = "This is mail subject";
$SendMail = wp_mail( $recipients, $subj, $body, $headers, $attachments );
}
Well I had to come up with workaround for this one
What I did is
1.Upload the file to the server
/*image upload */
/* GET File Variables */
$target_dir = $_SERVER['DOCUMENT_ROOT']. "/uploads/";
$image_name = $_FILES['YOUR_IMAGE']['name'];
$target_file = $target_dir . basename($_FILES['YOUR_IMAGE']['name']);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
$check = getimagesize($_FILES["YOUR_IMAGE"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["YOUR_IMAGE"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["YOUR_IMAGE"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["YOUR_IMAGE"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
$attachment = array($target_file);
2.email with wp-mail
$to = $Email; // put your email here
$headers = array('Content-Type: text/html; charset=UTF-8','From:' . $name . '<' . $fromEmail . '>');
// $headers = 'From:' . $name . '<' . $studentEmail . '>' . "\r\n"; // put user's email here or duplicate your email
$subject = 'Apply Online Form';
if (wp_mail($to, $subject, $message, $headers, $attachment ) === false) {
echo "Error";
unlink($target_file);
} else {
unlink($target_file);
echo "<h3> Mail Sent Successfully</h3>";
}
3.on successful email or not unlink the uploaded image
unlink($target_file);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With