i am trying to send mail from one to other using gmail smtp.
the mail sent successfully but without attachment. how can i solve this?
html form:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendresume.PHP" enctype="multipart/form-data">
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<input type="text" name="name" class="form-control" required="required" placeholder="Name">
</div>
<div class="form-group">
<input type="text" name="mobile" class="form-control" required="required" placeholder="Mobile number">
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" required="required" placeholder="Email address">
</div>
<p class="lead" style="margin-bottom: 10px;">Resume :</p>
<div class="form-group">
<input type="file" name="file" class="form-control" required="required" >
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">Send Message</button>
</div>
</div>
<div class="col-sm-7">
<textarea name="messege" id="message" class="form-control" rows="8" placeholder="Note"></textarea>
</div>
</div>
</form>
and php code is:
<?php
include "classes/class.phpmailer.php"; // include the class name
$email = $_POST["email"];
$messege=$_POST['messege'];
$name=$_POST['name'];
$mobile=$_POST['mobile'];
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "abc#gmail.com";
$mail->Password = "mypassword";
$mail->SetFrom("feedback#abc.com");
$mail->Subject = "this is subject";
$mail->Body = "this is body <br/><br/><br/><br/>
name:$name <br/><br/>
email:$email<br/><br/>
mobile:$mobile<br/><br/>
messege:$messege</b>";
$mail -> Addattachment('here is problem');
$mail->AddAddress("mymail#gmail.com");
if(!$mail->Send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
echo "mail sent";
}
?>
this mail is sent successfully but I want it with attachment. file store in directory is not important. hope this problem solve immediately. thanks in advance because I never learned an used php before.
Here is an example to send attachment using PHPMailer class:
http://tournasdimitrios1.wordpress.com/2011/11/08/a-simple-example-sending-email-with-attachment-using-phpmailer/
Related
I am facing issue in my contact form, i want to send a mail using php on click on send message button i am getting error form submission failed no errors
<div class="col-lg-6 mt-5 mt-lg-0" data-aos="fade-left" data-aos-delay="100">
<form action="forms/contact.php" method="post" role="form" class="php-email-form">
<div class="row">
<div class="col-md-6 form-group">
<input type="text" name="name" class="form-control" id="name" placeholder="Your Name" required>
</div>
<div class="col-md-6 form-group mt-3 mt-md-0">
<input type="email" class="form-control" name="email" id="email" placeholder="Your Email" required>
</div>
</div>
<div class="form-group mt-3">
<input type="text" class="form-control" name="subject" id="subject" placeholder="Subject" required>
</div>
<div class="form-group mt-3">
<textarea class="form-control" name="message" rows="5" placeholder="Message" required></textarea>
</div>
<div class="my-3">
<div class="loading">Loading</div>
<div class="error-message"></div>
<div class="sent-message">Your message has been sent. Thank you!</div>
</div>
<div class="text-center"><button type="submit" name="submit" id="submit">Send Message</button></div>
</form>
</div>
Here is my php code which i save with contact.php under forms folder.
<?php error_reporting(E_ALL); ini_set('display_errors', 1);
$result = "";
$error = "";
if(isset($_POST['submit']))
{
$name = $_POST['name']; // Get Name value from HTML Form
$email_id = $_POST['email']; // Get Email Value
$to = "support#globalexpresssolutions.net"; // You can change here your Email
$subject = $_POST['subject']; // This is your subject
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
//smtp settings
$mail->isSMTP(); // send as HTML
$mail->Host = "smtpout.secureserver.net"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "************"; // Your mail
$mail->Password = '************'; // Your password mail
$mail->Port = 465; //specify SMTP Port
$mail->SMTPSecure = 'ssl\tls';
$mail->setFrom($email_id,$name);
$mail->addAddress('**********');
$mail->addReplyTo($email_id,$name);
$mail->isHTML(true);
$mail->Subject=$subject;
$mail->Body="
<html>
<body>
<table style='width:600px;'>
<tbody>
<tr>
<td style='width:150px'><strong>Name: </strong></td>
<td style='width:400px'>$name</td>
</tr>
<tr>
<td style='width:150px'><strong>Email ID: </strong></td>
<td style='width:400px'>$email_id</td>
</tr>
<tr>
<td style='width:150px'><strong>Message: </strong></td>
<td style='width:400px'>$msg</td>
</tr>
</tbody>
</table>
</body>
</html>
";;
if(!$mail->send())
{
$error = "Something went worng. Please try again.";
}
else
{
$result="Thanks\t" .$name. " for contacting us.";
}
}
?>
i have added the phpmailer files to
Please help me in resolving and understanding the issue
Your error message isn't a php error. Enable php errors on your contact.php page and show us the exact error. You can do this by going to your php.ini file and enabling all errors. Also, comment out your mail function for now just to make sure php is getting your form data.
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 2 years ago.
Improve this question
PHP Email form with attachment not working by PHPMailer help me what I'm missing. Without form and PHP code it's working in localhost but when i merge with the form it's totally not working..
<?php
require 'vendor/autoload.php';
require 'classes/config.php';
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$mat = $_POST['mat'];
$res = $_POST['res'];
$tech = $_POST['tech'];
$city = $_POST['city'];
$message = $_POST['message'];
$content='<br><br>Name: '.$name.'<br>'.'<br>Mobile: '.$mobile .'<br>Material: '.$mat.'<br>Res: '.$res.'<br>tech: '.$tech.'<br>City: '.$city .'<br>Message: '.$message.'<br>Email: '.$email;
$file_name = ($_FILES['image']['name']);
$file_tmp = ($_FILES['image']['tmp_name']);
$file_path = "upload";
if(move_uploaded_file($file_tmp, "uploads" . $file_name)){
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->Host = Config::SMTP_HOST;
$mail->Username = Config::SMTP_USER;
$mail->Password = Config::SMTP_PASS;
$mail->Port = Config::SMTP_PORT;
$mail->SMTPSecure = 'tls';
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->isHTML(true);
$mail->CharSet = 'UTF-8';
$mail->setFrom('mail');
$mail->addAddress('mail');
$mail->Subject = 'Got a Enquiry';
$mail->Body = $content;
$mail->addAttachment($file_path, $file_name);
if($mail->send()){
echo 'Super';
} else {
echo 'nothing:' .$mail->ErrorInfo;
}
}
}
?>
<form class="montform" id="reused_form" enctype="multipart/form-data" >
<div class="col-lg-4 col-md-4 col-sm-12 col-xs-12 bzd-upload-1-1">
<div class="col-lg-12 frm-bg">
<img src="img/upload-icon.png" class="img-responsive">
<p>Drag and Drop Files<br/>
or Upload Here</p>
<p class="file">
<label for="file_attach">
<h6>Browse</h6>
</label>
<input name="image" type="file" id="file" class="feedback-input">
</p>
</div>
</div>
<div class="col-lg-8 col-md-8 col-sm-12 col-xs-12 bzd-form-1-1">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Name</label>
<p class="name">
<input name="name" type="text" class="feedback-input" required placeholder="Name" id="name" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Email</label>
<p class="email">
<input name="email" type="email" required class="feedback-input" id="email" placeholder="Email" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Mobile No</label>
<p class="name">
<input name="phone" type="tel" class="feedback-input" required placeholder="Phone" id="phone" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Material</label>
<p class="name">
<input name="mat" type="tel" class="feedback-input" required placeholder="Material" id="mat" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Resolution</label>
<p class="name">
<input name="res" type="tel" class="feedback-input" required placeholder="Resolution" id="res" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Technology</label>
<p class="name">
<input name="tech" type="tel" class="feedback-input" required placeholder="Technology" id="tech" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">City</label>
<p class="name">
<input name="city" type="text" class="feedback-input" required placeholder="City" id="city" />
</p>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12 form-group">
<label class="form-1-1">Message</label>
<p class="text">
<textarea name="message" class="feedback-input" id="comment" placeholder="Message"></textarea>
</p>
</div>
<div class="submit">
<button type="submit" class="button-blue">SUBMIT</button>
<div class="ease"></div>
</div>
</div>
</form>
When I click the submit button it's loading... No error displayed and also i'm not getting mail. I am also search some more articles but still it is not resolved.. kindly help me in this..
You are checking this:
if(isset($_POST['submit'])){
but your form does not contain an input named submit, so this condition will never be true and your sending code will not be run.
You have this submit button:
<button type="submit" class="button-blue">SUBMIT</button>
but it has no name or value attribute. Change it to this:
<button type="submit" name="submit" class="button-blue">SUBMIT</button>
You should check your error_log file it would show you whats going wrong.
Actualy $mail->SMTPDebug = 2; would create troubleshoots of errors too, so maybe your emails going to spam box.
Here is the code working on my localhost :
require_once "vendor/autoload.php";
$mail = new PHPMailer\PHPMailer\PHPMailer(true);
//Or $mail = new PHPMailer;
//Enable SMTP debugging.
$mail->SMTPDebug = 3;
//Set $mail->SMTPDebug = 0; on live sites.
//Set PHPMailer to use SMTP.
$mail->isSMTP();
//Set SMTP host name
$mail->Host = "smtp.gmail.com";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;
//Provide username and password
$mail->Username = "useremail#gmail.com";
$mail->Password = "password";
//If SMTP requires TLS encryption then set it
//$mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
//Set TCP port to connect to
$mail->Port = 587;
$mail->From = "name#gmail.com";
$mail->FromName = "Full Name";
$mail->smtpConnect(
array(
"ssl" => array(
"verify_peer" => true,
"verify_peer_name" => true,
"allow_self_signed" => false
)
)
);
//This won't require any server settings on your localhost.
$mail->addAddress("Recepient#email.com", "Recepient Name");
$mail->isHTML(true);
$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent successfully";
}
Change credentials to yours, and see if your emails not going to spam box.
Change your form line to this : <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="montform" id="reused_form" enctype="multipart/form-data"> you dont have post method in your form, it doesnt post your values to php page.
NOTE : if your php codes are not in same page! change this <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> to your page.php in action.
Change Your upload codes to :
$file_name = ($_FILES['image']['name']);
$file_tmp = ($_FILES['image']['tmp_name']);
$file_path = "upload/";
if(move_uploaded_file($file_tmp, $file_path.$file_name)){
This question already has answers here:
Debugging PHP Mail() and/or PHPMailer
(1 answer)
PHP mail function doesn't complete sending of e-mail
(31 answers)
Closed 5 years ago.
i'm trying to send that form via gmail :
<!-- form -->
<form name="contactForm" id="contactForm" method="post" action="inc/sendEmail.php">
<fieldset>
<div class="form-field">
<input name="contactName" type="text" id="contactName" placeholder="Nom" value="" minlength="2" required="">
</div>
<div class="form-field">
<input name="contactEmail" type="email" id="contactEmail" placeholder="Email" value="" required="">
</div>
<div class="form-field">
<input name="contactSubject" type="text" id="contactSubject" placeholder="Sujet" value="">
</div>
<div class="form-field">
<textarea name="contactMessage" id="contactMessage" placeholder="message" rows="10" cols="50" required=""></textarea>
</div>
<div class="form-field">
<button class="submitform">Submit</button>
<div id="submit-loader">
<div class="text-loader">Sending...</div>
<div class="s-loader">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
</div>
</div>
</fieldset>
</form> <!-- Form End -->
I've checked with the developer tools and everything is send correctly
My php file is in the inc folder :
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
if(isset($_POST["submit"])){
$username = 'myadress#gmail.com';
$password = 'mypass';
$to = $username;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->IsHTML(true);
$mail->Username = $username;
$mail->Password = $password;
$mail->SetFrom($_POST["contactName"." "."contactEmail"]);
$mail->Subject = $_POST["contactSubject"];
$mail->Body = $_POST["contactMessage"];
$mail->AddAddress($to);
if(!$mail->Send())
{
echo "Mailer error : " . $mail->ErrorInfo . "<br>";
}}
Actually i can't see any error but i receive no mail so something is wrong
(indentation here isn't correct but it's good in my code)
Actually i googled for some solutions but no one has worked for it, what am i missing ?
i'm trying to add a PDF attachment in my PHPmailer but it won't send the attachment.
Controller:
$recipient = Request::input('emailaddress');
$recipientName = Request::input('name');
$file = Request::input('file');
$mail = new \PHPMailer(true);
try {
$mail->isSMTP();
$mail->CharSet = "utf-8";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.sendgrid.net";
$mail->Port = 587;
$mail->Username = "username";
$mail->Password = "password";
$mail->setFrom("info#email.nl", "Business");
$mail->Subject = "Offerte";
$mail->MsgHTML("Test.");
$mail->addAddress($recipient, $recipientName);
if (isset($_FILES[$file]) &&
$_FILES[$file]['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES[$file]['tmp_name'],
$_FILES[$file]['name']);
}
$mail->send();
} catch (phpmailerException $e) {
dd($e);
} catch (Exception $e) {
dd($e);
}
return back()->with('send', 'send');
}
The form:
<form method="POST" action="/offer/sendmail">
<div class="form-group">
<label for="name">Aan:</label>
<input type="text" class="form-control" id="name" name="name" value="{{$offers->name}}">
</div>
<div class="form-group">
<label for="emailaddress">Email-adres:</label>
<input type="text" class="form-control" id="emailaddress" name="emailaddress" value="{{$offers->email}}">
</div>
<div class="form-group">
<label for="subject">Onderwerp:</label>
<input type="text" class="form-control" id="subject">
</div>
<div class="form-group">
<label for="subject">Bericht:</label>
<textarea class="form-control" rows="5" id="comment"></textarea>
</div>
<div class="form-group">
<label for="subject">Voeg een bestand toe:</label>
<input type ="file" name='file' id='uploaded_file'>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-success">Verzenden</button>
</form>
It does send the email but there is no attachment in it. Do you have any idea why? I've also changed $mail->username and password so i can keep my credentials private.
This code is unsafe; you're trusting values from $_FILES. You need to call is_uploaded_file or move_uploaded_file. Read the PHP docs on handling uploads.
On a more basic level, you have not set the enctype attribute on the form, so file elements will not work - you need to add enctype="multipart/form-data", so your form tag will become.
<form method="POST" action="/offer/sendmail" enctype="multipart/form-data">
It's a good idea to set a MAX_FILE_SIZE element too.
Base your code on the send_file_upload example provided with PHPMailer, which handles uploads correctly and safely.
I created a contact form in a PHP project and I have been trying to get the mail to send and in the process I have been altering some code such as removing my contact form. Now I re-added the form, but it does not display on the browser:
This is the actual file called contact.php:
<?php
define("TITLE", "Contact Us | MicroUrb");
include('includes/header.php');
/**
* PHPMailer Autoloader
*/
require '../vendor/phpmailer/phpmailer/PHPMailerAutoload.php';
/**
* Configure PHPMailer with your SMTP server settings
*/
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'myemail#example.com';
$mail->Password = 'secret';
$mail->SMTPSecure = 'tls';
/**
* Enable SMTP debug messages
*/
$mail->SMTPDebug = 2;
/**
* Send an email
*/
$mail->setFrom('sender#gmail.com');
$mail->addAddress('recipient#gmail.com');
$mail->Subject = 'An email sent from PHP';
$mail->Body = 'This is a test message';
if ($mail->send()) {
echo 'Message sent!';
} else {
echo 'Mailer error: ' . $mail->ErrorInfo;
}
?>
<div id="contact">
<hr>
<h1 class="contact">Get in touch with us!</h1>
<form method="post" action="" id="contact-form">
<label for="name">Your name</label>
<input type="text" id="name" name="name">
<label for="email">Your email</label>
<input type="email" id="email" name="email">
<label for="message">and your message</label>
<textarea id="message" name="message"></textarea>
<input type="checkbox" id="subscribe" name="name" value="Subscribe">
<label for="">Subscribe to newsletter</label>
<input type="submit" class="button next" name="contact_submit" value="Send Message">
</form>
<hr>
</div>
<?php include('includes/footer.php'); ?>