You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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


问题原因及解决办法

错误根源是方法名拼写错误:

  1. setForm 是错误的方法名,PHPMailer中设置发件人的正确方法是 setFrom(注意是From不是Form)
  2. 另外还有一处拼写错误:addAdress 应该改为 addAddress(末尾少了一个字母d)

修正后的关键代码片段:

// 正确设置发件人
$mail->setFrom('random@gmail.com'); 

// 正确添加收件人
$mail->addAddress($_POST["email"]);

另外弹窗提示里的 Succesfully 也存在拼写错误,正确写法是 Successfully,可以一并修正。


内容的提问来源于stack exchange,提问作者Боби Василев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:50:24