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

PHPMailer仅在含CC字段时发送邮件,如何设置CC为可选?

解决PHPMailer中CC字段可选的问题

问题出在你直接给addCC()传了空值或无效地址,PHPMailer会对添加的邮箱地址做校验,无效时就会抛出错误。你之前的判断逻辑不对,因为isset($_POST['emailfrom'])和$CC是否有效没有关联,就算这个字段存在,$CC也可能是空的。

正确的做法是仅当$CC是有效的邮箱地址时才调用addCC方法,代码修改如下:

$mail->addAddress($EmailTo);
// 验证$CC不为空且是合法邮箱地址时,添加抄送
if (!empty($CC) && filter_var($CC, FILTER_VALIDATE_EMAIL)) {
    $mail->addCC($CC);
}
$mail->Subject = $Subject;
$mail->Body    = nl2br($Message);
$mail->AltBody = nl2br($Message);
$mail->isHTML(false); 
$mail->send();

代码说明:

  • !empty($CC):确保$CC不是空字符串、null或者false这类无效值
  • filter_var($CC, FILTER_VALIDATE_EMAIL):用PHP内置过滤器验证邮箱格式的合法性,避免传入错误格式的地址触发PHPMailer的校验错误

这样修改后,不管$CC是空值还是无效地址,都不会执行addCC(),自然就不会报错,同时有效时正常添加抄送。

内容的提问来源于stack exchange,提问作者Lucy Huang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:39:52