I'm using PHPmailer. It works when $mail->SMTPDebug = true; but when I remove that line, it silently fails. I say silently fails as it doesn't give any errors, and yet the email doesn't seem to be delivered.
$mail = new PHPMailer;
$mail->SMTPDebug = true;
$mail->SMTPAuth = true;
$mail->CharSet = 'utf-8';
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = '465';
$mail->Username = '[email protected]';
$mail->Password = 'xxxxx';
$mail->Mailer = 'smtp';
$mail->AddReplyTo('[email protected]', 'xxxxx Support');
$mail->From = '[email protected]';
$mail->FromName = 'xxxxx Applications';
$mail->Sender = 'xxxxx Applications';
$mail->Priority = 3;
//To us
$mail->AddAddress('[email protected]', 'xxxxx xxxxx');
//To Applicant
$mail->AddAddress($email, $first_name.''.$last_name);
$mail->IsHTML(true);
$last_4_digits = substr($card_num, -4);
//build email contents
$mail->Subject = 'Application From '.$first_name.' '.$last_name;
$mail->Body = $body_html;
$mail->AltBody = $body_text;
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
By setting
$mail->SMTPDebug = false;
instead of omitting the line completely, it works every time.