Ich habe keine Ahnung, warum dieses Skript E-Mails in den Spam-Ordner sendet. Ich habe versucht, es mit SMTP zu beheben, aber es war nutzlos, es funktioniert nur mit Hotmail. Ich verwende MAMP für lokales Hosting, da meine Arbeit noch nicht online ist.PHP-Skript senden Sie E-Mail in Spam-Ordner
Warum? Wie kann ich dieses Problem beheben?
Script:
<?php
require("PHPMailer.php");
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));
header('Content-type: application/json');
$to = 'myEmail'; // put your email here
$email_template = 'simple.html';
$subject = strip_tags($_POST['subject']);
$email = strip_tags($_POST['email']);
$name = strip_tags($_POST['name']);
$message = nl2br(htmlspecialchars($_POST['message'], ENT_QUOTES));
$result = array();
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
// gmail account data
$mail->Username = "myAccountGmail";
$mail->Password = "myPasswordGmail";
if(empty($name)){
$result = array('response' => 'error', 'empty'=>'name', 'message'=>'<strong>Error!</strong> Name is empty.');
echo json_encode($result);
die;
}
if(empty($email)){
$result = array('response' => 'error', 'empty'=>'email', 'message'=>'<strong>Error!</strong> Email is empty.');
echo json_encode($result);
die;
}
if(empty($message)){
$result = array('response' => 'error', 'empty'=>'message', 'message'=>'<strong>Error!</strong> Message body is empty.');
echo json_encode($result);
die;
}
$headers = "From: " . $name . ' <' . $email . '>' . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$templateTags = array(
'{{subject}}' => $subject,
'{{email}}'=>$email,
'{{message}}'=>$message,
'{{name}}'=>$name,
'{{phone}}'=>$phone
);
$templateContents = file_get_contents(dirname(__FILE__) . '/email-templates/'.$email_template);
$contents = strtr($templateContents, $templateTags);
if (mail($to, $subject, $contents, $headers)) {
$result = array('response' => 'success', 'message'=>'<strong>Thank You!</strong> Your email has been delivered.');
} else {
$result = array('response' => 'error', 'message'=>'<strong>Error!</strong> Cann\'t Send Mail.' );
}
echo json_encode($result);
die;
In wen ist Spam-Ordner? Deine? Es ist wahrscheinlich, dass Ihr E-Mail-Anbieter Ihre Domain nicht kennt und davon ausgeht, dass Sie Spam sind. –
Schreiben Sie die E-Mails wie Sie diesen Beitrag geschrieben haben? Denn wenn ich weiß warum. – jonrsharpe
jonrsharpe, Kein Entschuldigung für mein Englisch :(Ich bin Italienisch – Andrea