联系表单中的消息正文为空(使用PhPMailer)

时间:2016-09-02 08:48:12

标签: php email phpmailer

我的联系表格有点问题。

我正在使用PhpMailer和Bootstrap联系表单。当我运行代码时,我收到此消息:

awk -F: '{for (A=1;A<=NF;A++) printf("%s\n",$A);}' input.file | sort -u > output.file

这是我的代码:

"Uncaught exception 'phpmailerException' with message 'Message body empty'"

这是我的HTML:

$name = $_POST['InputName'];
$company = $_POST['InputFirma'];
$email = $_POST['InputEmail'];
$phone = $_POST['InputPhone'];
$message = $_POST['InputSubject'];

require '../../PHPMailer-master/PHPMailerAutoload.php';
require '../../PHPMailer-master/class.smtp.php';

$mail = new PHPMailer(true);
$mail->SMTPDebug = false;             // Enable verbose debug output
$mail->isSMTP();                      // Set mailer to use SMTP
$mail->Host = 'poczta.cgsa.com.pl';   // Specify main and backup SMTP servers
$mail->SMTPAuth = true;               // Enable SMTP authentication
$mail->Username = 'sample@sample.pl'; // SMTP username
$mail->Password = 'FU86m6BSp7';       // SMTP password
$mail->Port = 587;

$mail->setFrom('sample@sample.pl', 'Giełd');
$mail->addAddress('sample@sample.pl', 'Odbiorca'); // Add a recipient

$mail->isHTML(true);                               // Set email format to HTML


if(!$mail->send()) {
    echo 'Wiadomość nie mogła zostać wysłana';
    echo "<br><br><br><hr><br>";
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Wiadomość została wysłana';
}

$Body = "Wiadomość od: $name\n E-Mail: $email\n Firma: $company\n";

$success = mail($name, $company, $phone, $message);

问题

如何解决错误消息?

1 个答案:

答案 0 :(得分:1)

你只是按错误的顺序做事。在发送邮件之前,您需要设置Body属性(而不仅仅是名为$Body的变量),而您无需致电mail()一点都不。

$mail->Body = "Wiadomość od: $name\n E-Mail: $email\n Firma: $company\n";

if(!$mail->send()) {
    echo 'Wiadomość nie mogła zostać wysłana';
    echo "<br><br><br><hr><br>";
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Wiadomość została wysłana';
}

您正在使用auoloader,因此您无需单独require SMTP类,它将自动加载。

您正在启用异常(通过在构造函数中传递true),但您没有将代码包装在try / catch块中以处理可能发生的任何异常。