そのため、PHPMailer を使用して Web サイトのメールフォームを処理しようとしています。
私が見つけたチュートリアルに基づいて、ここにコードを書きました。
<?php
error_reporting(E_ALL);
require_once("class.phpmailer.php");
include("class.smtp.php");
$email = new PHPMailer();
//
// Set server details for send
//
$email->IsSMTP();
$email->Host = "mail.loganyoung.za.net";
$email->Port = 25;
$email-SMTPAuth = true;
$email->Username = "<my email>";
$email->Password = "<my password>";
//
// Send mail from the contact form
//
$to = "<my email>";
$from = $_POST["from"];
$name = $_POST["name"];
$subject = "From web: ".$_POST["subject"];
$message = $_POST["message"];
$body = "<p>Hi Logan,</p>";
$body .= "<p>You have received a new query on your website.<br />Please see below:</p>";
$body .= "<p>";
$body .= str_replace("\r\n", "<br />", $message);
$body .= "</p>";
$email->SetFrom($from, $name);
$email->AddReplyTo($from, $name);
$email->AddAddress($to, "LoganYoung.za.net");
$email->Subject = $subject;
$email->Body = $body;
$email->IsHTML = true;
session_start();
if(!$email->Send()) {
$_SESSION["mailresult"] = "success";
echo "success";
} else {
echo "<p>Failed:</p><p>".$email->ErrorInfo."</p>";
$_SESSION["mailresult"] = "failed";
$_SESSION["mailerror"] = $email->ErrorInfo;
}
?>
送信されない理由として考えられるのは...
- SMTP の詳細が正しくありません (解決するために SMTP 認証なしで送信する可能性がありますか?)
- ハンドラーが POST データを取得していません (データを送信する ajax は正常に動作しているようです)
- このコードには、特定できない問題があります...
可能性を排除する手段として、誰かがここのコードに何か問題があることを見つけることができますか? もしそうなら、何が問題で、どうすれば修正できますか?
前もって感謝します!