我提交表單後發送電子郵件時遇到麻煩,此消息顯示:「已發送消息」,但我沒有收到任何電子郵件,而我甚至檢查了垃圾郵件文件夾及其空白。用PHPMailer通過聯繫表發送電子郵件時遇到麻煩
下面是HTML表單代碼:
<form action="<?php echo $PHP_SELF; ?>" method="post">
<input type="text" class="form-control" placeholder="Name" name="name">
<input type="email" class="form-control" placeholder="Email" name="email">
<input type="text" class="form-control" placeholder="Subject" name="subject">
<textarea class="form-control" placeholder="Message" rows="7" name="message"> </textarea>
<input type="submit" class="form-control" name="submit" value="submit">
</form>
和PHP代碼爲:
<?php
if(isset($_POST['email'])) {
if(isset($_POST['subject'])){ $subject = $_POST['subject']; }
if(isset($_POST['message'])){ $message = $_POST['message']; }
if(isset($_POST['name'])){ $name = $_POST['name']; }
if(isset($_POST['email'])){ $email = $_POST['email']; }
require_once('class.phpmailer.php');
$mail = new PHPMailer();
$body = $message;
$mail->SetFrom($email, $name);
$address = "[email protected]";
$mail->AddAddress($address, "[email protected]");
$mail->Subject = $subject;
$mail->MsgHTML($body);
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
?>
我建議你檢查你的SMTP配置。你有一個有效的SMTP設置的電子郵件服務器?從您的代碼中,您沒有使用任何SMTP服務器發送電子郵件。所以即使您的代碼正確並且返回成功,郵件也不會被髮送。 – d3r1ck
當未配置(無SMTP中繼)時,PHPMailer使用與「mail()」函數相同的傳輸。因此適用相同的條件。啓用調試,檢查日誌,DKIM/SPF等等等。 – mario
感謝您的回答和建議,我編輯了php代碼並添加了smtp配置,但smtp auth禁用導致域不需要身份驗證,但問題仍然是同樣...... –