form tweak
This commit is contained in:
+39
-68
@@ -1,76 +1,47 @@
|
||||
<?php
|
||||
if (isset($_POST['Email'])) {
|
||||
//Import PHPMailer classes into the global namespace
|
||||
//These must be at the top of your script, not inside a function
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PHPMailer\PHPMailer\SMTP;
|
||||
use PHPMailer\PHPMailer\Exception;
|
||||
|
||||
// EDIT THE 2 LINES BELOW AS REQUIRED
|
||||
$email_to = "[email protected]";
|
||||
$email_subject = "New form submissions";
|
||||
//Load Composer's autoloader
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
function problem($error)
|
||||
{
|
||||
echo "We are very sorry, but there were error(s) found with the form you submitted. ";
|
||||
echo "These errors appear below.<br><br>";
|
||||
echo $error . "<br><br>";
|
||||
echo "Please go back and fix these errors.<br><br>";
|
||||
die();
|
||||
}
|
||||
//Instantiation and passing `true` enables exceptions
|
||||
$mail = new PHPMailer(true);
|
||||
|
||||
// validation expected data exists
|
||||
if (
|
||||
!isset($_POST['Name']) ||
|
||||
!isset($_POST['Email']) ||
|
||||
!isset($_POST['Message'])
|
||||
) {
|
||||
problem('We are sorry, but there appears to be a problem with the form you submitted.');
|
||||
}
|
||||
try {
|
||||
//Server settings
|
||||
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
|
||||
$mail->isSMTP(); //Send using SMTP
|
||||
$mail->Host = 'smtp.example.com'; //Set the SMTP server to send through
|
||||
$mail->SMTPAuth = false; //Enable SMTP authentication
|
||||
// $mail->Username = '[email protected]'; //SMTP username
|
||||
// $mail->Password = 'secret'; //SMTP password
|
||||
// $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
|
||||
$mail->Port = 587; //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
|
||||
|
||||
$name = $_POST['Name']; // required
|
||||
$email = $_POST['Email']; // required
|
||||
$message = $_POST['Message']; // required
|
||||
//Recipients
|
||||
$mail->setFrom('[email protected]', 'Mailer');
|
||||
$mail->addAddress('[email protected]', 'Joe User'); //Add a recipient
|
||||
$mail->addAddress('[email protected]'); //Name is optional
|
||||
$mail->addReplyTo('[email protected]', 'Information');
|
||||
$mail->addCC('[email protected]');
|
||||
$mail->addBCC('[email protected]');
|
||||
|
||||
$error_message = "";
|
||||
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
|
||||
//Attachments
|
||||
$mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments
|
||||
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name
|
||||
|
||||
if (!preg_match($email_exp, $email)) {
|
||||
$error_message .= 'The Email address you entered does not appear to be valid.<br>';
|
||||
}
|
||||
//Content
|
||||
$mail->isHTML(true); //Set email format to HTML
|
||||
$mail->Subject = 'Here is the subject';
|
||||
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
|
||||
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
|
||||
|
||||
$string_exp = "/^[A-Za-z .'-]+$/";
|
||||
|
||||
if (!preg_match($string_exp, $name)) {
|
||||
$error_message .= 'The Name you entered does not appear to be valid.<br>';
|
||||
}
|
||||
|
||||
if (strlen($message) < 2) {
|
||||
$error_message .= 'The Message you entered do not appear to be valid.<br>';
|
||||
}
|
||||
|
||||
if (strlen($error_message) > 0) {
|
||||
problem($error_message);
|
||||
}
|
||||
|
||||
$email_message = "Form details below.\n\n";
|
||||
|
||||
function clean_string($string)
|
||||
{
|
||||
$bad = array("content-type", "bcc:", "to:", "cc:", "href");
|
||||
return str_replace($bad, "", $string);
|
||||
}
|
||||
|
||||
$email_message .= "Name: " . clean_string($name) . "\n";
|
||||
$email_message .= "Email: " . clean_string($email) . "\n";
|
||||
$email_message .= "Message: " . clean_string($message) . "\n";
|
||||
|
||||
// create email headers
|
||||
$headers = 'From: ' . $email . "\r\n" .
|
||||
'Reply-To: ' . $email . "\r\n" .
|
||||
'X-Mailer: PHP/' . phpversion();
|
||||
@mail($email_to, $email_subject, $email_message, $headers);
|
||||
?>
|
||||
|
||||
<!-- include your success message below -->
|
||||
|
||||
Thank you for contacting us. We will be in touch with you very soon.
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
$mail->send();
|
||||
echo 'Message has been sent';
|
||||
} catch (Exception $e) {
|
||||
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
|
||||
}
|
||||
Reference in New Issue
Block a user