Я пытаюсь запустить PHPMailer только в том случае, если моя форма отправлена. Я пробовал это несколькими разными способами, но без успеха.Запуск PHPMailer, если форма отправляет
Я предполагаю, что мой if (isset ($ _ POST ['submit'])) {tag находится в неправильном месте? Я также не уверен, какая часть этого кода действительно отправляет электронное письмо. Когда я тестирую его, используя
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
это работает, поэтому я знаю, что он работает правильно. Любые идеи, как запустить это, только если моя форма будет отправлена?
<?php
require_once 'C:\wamp\www\phpmailer\PHPMailer-master\PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com '; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('[email protected]', 'Marco'); // Add a recipient
//$mail->addAddress('[email protected]'); // Name is optional
//$mail->addReplyTo('[email protected]', 'Information');
//$mail->addCC('[email protected]');
//$mail->addBCC('[email protected]');
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'NEW APPLICATION';
$mail->Body = "--PERSONAL INFORMATION--
First Name: $fname Middle Name: $mname Last Name: $lname
Address:$address City:$city State:$state Zip:$zip ";
//$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if (isset($_POST['submit']))
{
$mail->send();
}
?>
Я ставлю, что ваш элемент формы не содержит соответствующий атрибут name. Сообщение об ошибке сообщит вам. Кроме того, убедитесь, что ваша форма имеет метод post. –
и 4-й закрыт @ Дагон * согласно *. Edit: Эй, куда вы отправились в Джордж? –
не проверяйте сообщение, ища поле формы. это ненадежно - вы можете сделать опечатки с обоих концов, но '$ _SERVER ['REQUEST_METHOD'] == 'POST'' на 100% надежнее. –