I tried to send attachment using sendgrid CURL, the mail send successfully, but i'm unable to open the attachment file(like jpg, png, xls). the input file will be changes as per the user, also the file is not correct as in the original size.
I tried to send attachment using sendgrid CURL, the mail send successfully, but i'm unable to open the attachment file(like jpg, png, xls). the input file will be changes as per the user, also the file is not correct as in the original size.
<?php
// use actual sendgrid username and password in this section
$url = 'https://api.sendgrid.com/';
$user = 'SGusername'; // place SG username here
$pass = 'SGpassword'; // place SG password here
// grabs HTML form's post data; if you customize the form.html parameters then you will need to reference their new new names here
$name = $_POST['userName'];
$email = $_POST['userEmail'];
$user_Product = $_POST['userProduct'];
$message = $_POST['userMessage'];
$fileName = $_FILES['file_attach']['name'];
$filePath = dirname(__FILE__);
$params = array(
'api_user' => "$user",
'api_key' => "$pass",
'to' => "myemail.com", // set TO address to have the contact form's email content sent to
'subject' => "Feedback", // Either give a subject for each submission, or set to $subject
'html' => "<html><head><title> Contact Form</title><body>
Name: $name\n<br>
Email: $email\n<br>
Product: $user_Product\n<br>
Message: $message <body></title></head></html>", // Set HTML here. Will still need to make sure to reference post data names
'text' => "
Name: $name\n
Email: $email\n
Subject: $subject\n
$message",
'from' => "myemail.com", // set from address here, it can really be anything
'files['.$fileName.']' => '@'.$filePath.'/'.$fileName.
);
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
$request = 'https://api.sendgrid.com/api/mail.send.json';
// Generate curl request
$session = curl_init($request);
// Tell curl to use HTTP POST
curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
curl_close($session);
if(!$response) //output success or failure messages
{
$output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => 'Hi '.$name .'.Thank you for your feedback.'));
die($output);
}
exit();
// print everything out
print_r($response);
?>