I have a form on example.com/contact-us.php
that looks like this (simplified):
<form method="post" action="process.php" enctype="multipart/form-data">
<input type="file" name="uploaded_file" id="uploaded_file" />
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
</form>
In my process.php
file, I have the following code utilizing PHPMailer()
to send an email:
require("phpmailer.php");
$mail = new PHPMailer();
$mail->From = me@example.com;
$mail->FromName = My name;
$mail->AddAddress(me@example.com,"John Doe");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Contact Form Submitted";
$mail->Body = "This is the body of the message.";
The email sends the body correctly, but without the Attachment of uploaded_file
.
MY QUESTION
I need the file uploaded_file
from the form to be attached to the email, and sent. I do NOT care about saving the file after the process.php
script sends it in an email.
I understand that I need to add AddAttachment();
somewhere (I'm assuming under the Body
line) for the attachment to be sent. But...
- What do I put at the top of the
process.php
file to pull in the fileuploaded_file
? Like something using$_FILES['uploaded_file']
to pull in the file from the contact-us.php page? - What goes inside of
AddAttachment();
for the file to be attached and sent along with the email and where does this code need to go?
Please help and provide code!Thanks!
This code help me in Attachment sending....
Replace your AddAttachment(...) Code with above code
Try:
Basic example can also be found here.
The function definition for
AddAttachment
is:You'd use
$_FILES['uploaded_file']['tmp_name']
, which is the path where PHP stored the uploaded file (it's a temporary file, removed automatically by PHP when the script ends, unless you've moved/copied it elsewhere).Assuming your client-side form and server-side upload settings are correct, there's nothing you have to do to "pull in" the upload. It'll just magically be available in that tmp_name path.
Note that you WILL have to validate that the upload actually succeeded, e.g.
Otherwise you may try to do an attachment with a damaged/partial/non-existent file.
In my own case, i was using
serialize()
on the form, Hence the files were not being sent to php. If you are using jquery, useFormData()
. For exampleUsing jquery,
File could not be Attached from client PC (upload)
In the HTML form I have not added following line, so no attachment was going:
enctype="multipart/form-data"
After adding above line in form (as below), the attachment went perfect.
Use this code for sending attachment with upload file option using html form in phpmailer
Use this link for reference.