PHPMailer收件人地址无效报错,无法接收确认邮件求助
解决PHPMailer发送确认邮件时的无效地址错误
错误详情
Fatal error: Uncaught PHPMailer\PHPMailer\Exception: Invalid address: (to): gerald in C:\PerfLogs\htdocs\AuthSystem\vendor\phpmailer\phpmailer\src\PHPMailer.php:1094 Stack trace: #0 C:\PerfLogs\htdocs\AuthSystem\vendor\phpmailer\phpmailer\src\PHPMailer.php(1014): PHPMailer\PHPMailer\PHPMailer->addOrEnqueueAnAddress('to', 'gerald', '') #1 C:\PerfLogs\htdocs\AuthSystem\code.php(26): PHPMailer\PHPMailer\PHPMailer->addAddress('gerald') #2 C:\PerfLogs\htdocs\AuthSystem\code.php(53): sendemail_verify('gerald', 'fimmel146@gmail...', 'aa6fc4003742908...') #3 {main} thrown in C:\PerfLogs\htdocs\AuthSystem\vendor\phpmailer\phpmailer\src\PHPMailer.php on line 1094
问题分析
从报错栈追踪和代码片段可定位核心问题:
code.php第53行调用sendemail_verify时,已正确传入$name(用户名)、$email(收件人邮箱)、$verify_token三个参数- 但在
sendemail_verify函数内的第26行,错误地将**用户名$name**传给了$mail->addAddress()方法——该方法要求传入合法邮箱地址,而非纯用户名,导致PHPMailer判定收件人地址无效
修复方案
修改code.php第26行代码:
原错误代码
$mail->setFrom("fimmel146@gmail.com", $name); $mail->addAddress($name);
修改后的正确代码
$mail->setFrom("fimmel146@gmail.com", $name); $mail->addAddress($email); // 将$name替换为$email,传入正确的收件人邮箱地址
验证说明
修改后,addAddress()将接收合法的收件人邮箱,PHPMailer可正常识别地址并执行邮件发送流程,无效地址的错误会被解决。
内容的提问来源于stack exchange,提问作者kemson Godwin
相关产品推荐
相关产品推荐

