Ich habe den folgenden Code geschrieben, um E-Mails mit PHPMailer zu senden. Aber was ich versuche zu arbeiten ist der erste Versuch ein Senden über SMTP TLS und wenn das fehlschlägt dann sende die Mail ohne SMTP. Aber der Code scheint zu scheitern, weil er die PHPMailer-Funktion nicht zweimal ausführen möchte. Wenn ich die Funktion einmal benutze, um sie entweder über SMTP zu versenden oder nicht, funktionieren beide. Aber es funktioniert nicht, wenn SMTP fehlschlägt.PHPMailer-Funktion zum Senden ohne SMTP, wenn SMTP fehlschlägt
function processEmail($to, $message, $skip_smtp){
date_default_timezone_set('Europe/London');
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
if (!isset($skip_smtp) || empty($skip_smtp)){
$mail->isSMTP();
}
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = 'smtp.domain.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "my_smtp_username";
$mail->Password = "my_smtp_password";
$mail->setFrom('[email protected]', 'From Name');
$mail->addAddress($to, $to);
$mail->msgHTML($message);
if (!$mail->send()) {
return false;
} else {
return 1;
}
}
$smtp_result = processEmail($to, $message);
if ($smtp_result>=1){
echo "Sent using secure TLS SMTP";
} else {
processEmail($to, $message, 1);
echo "SMTP Failed - Attempted to send without SMTP ";
}
Versuchen Sie, Mail über private SMTP-Relay-Server weiterzuleiten? – Kitson88