使用WP Mail SMTP与wp_mail()发送邮件时出现无效头错误求助
解决WP Mail SMTP触发invalid_parameter: Invalid headers错误
你的问题核心是邮件头格式不符合SMTP规范,结合代码来看主要有两个问题:
From头末尾的多余分号
原代码里From: $email;末尾的分号是无效字符,邮件头字段不允许附带这类符号,WP Mail SMTP的校验逻辑会将其判定为非法参数。换行符不规范
邮件头要求必须用\r\n(CRLF)分隔各个字段,你代码里的换行写法存在格式问题,恰好插件在1月25日前后的更新收紧了校验规则,导致之前能正常运行的代码现在触发错误。
修正后的代码如下:
$headers = "From: $email" . PHP_EOL; $headers .= "MIME-Version: 1.0" . PHP_EOL; $headers .= "Content-Type: text/html; charset=UTF-8"; if (wp_mail($to, $subject, $message, $headers, $attachments)) { echo "<h3 style='color:green; text-align: center;'>Email sent!</h3>"; }
额外排查建议:
- 确认
$email变量是合法的邮箱格式,没有包含空格、特殊字符等非法内容 - 检查WP Mail SMTP插件的版本更新记录,确认是否是版本升级导致的校验规则变更
- 暂时禁用其他邮件相关插件,排除插件间的冲突可能性
内容的提问来源于stack exchange,提问作者Mārcis
相关产品推荐
相关产品推荐

