PHPMailer报错:调用未定义方法setForm(),寻求技术帮助
PHPMailer调用未定义方法报错问题
我的代码如下:
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; require 'phpmailer/src/SMTP.php'; if(isset($_POST["send"])){ $mail = new PHPMailer(true); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'random@gmail.com'; // Your gmail $mail->Password = 'rqbsmgrfefohmokx'; // Your gmail password $mail->SMTPSecure= 'ssl'; $mail->Port = 465; $mail->setForm('random@gmail.com'); // Your gmail $mail->addAdress($_POST["email"]); $mail->isHTML(true); $mail->Subject = $_POST["subject"]; $mail->Body = $_POST["message"]; $mail->send(); echo " <script> alert('Sent Succesfully'); document.location.href = 'index.php'; </script> " ; } ?>
运行代码时出现以下错误:
Fatal error: Uncaught Error: Call to undefined method PHPMailer\PHPMailer\PHPMailer::setForm() in C:\xampp\htdocs\sendmail\send.php:20 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sendmail\send.php on line 20
问题原因及解决办法
错误根源是方法名拼写错误:
setForm是错误的方法名,PHPMailer中设置发件人的正确方法是setFrom(注意是From不是Form)- 另外还有一处拼写错误:
addAdress应该改为addAddress(末尾少了一个字母d)
修正后的关键代码片段:
// 正确设置发件人 $mail->setFrom('random@gmail.com'); // 正确添加收件人 $mail->addAddress($_POST["email"]);
另外弹窗提示里的 Succesfully 也存在拼写错误,正确写法是 Successfully,可以一并修正。
内容的提问来源于stack exchange,提问作者Боби Василев
相关产品推荐
相关产品推荐

