SMTP邮件CC无效怎么解决
PHP通过原始SMTP协议发送邮件时,仅在邮件头中添加CC字段无法使抄送人收到邮件,必须在SMTP会话中显式调用RCPTTO:命令为每个CC地址注册接收者。

PHP通过原始SMTP协议发送邮件时,仅在邮件头中添加CC字段无法使抄送人收到邮件,必须在SMTP会话中显式调用RCPT TO:命令为每个CC地址注册接收者。
在您提供的自定义smtp_mail()函数中,当前逻辑仅对$to列表中的收件人执行了RCPT TO:命令(即SMTP协议中声明“该邮件将送达这些地址”),但完全忽略了$cc地址。SMTP协议本身不区分To/CC/BCC——它只关心“谁是合法的收件人(envelope recipient)”,而To、CC、BCC语义仅由邮件头(Header)控制,用于客户端显示。若未在SMTP会话中为CC邮箱调用RCPT TO:,邮件服务器会直接拒绝投递给这些地址,导致CC收件人收不到任何邮件。
✅ 正确做法:为CC地址也注册RCPT
需在MAIL FROM:之后、DATA之前,为所有CC邮箱逐一发送RCPT TO:指令。修改原函数中相关部分如下:
// 原有:仅处理 To 收件人
foreach ($recipients as $email) {
fwrite($socket, 'RCPT TO: <'.trim($email).'>'."\r\n");
server_parse($socket, '250');
}
// ✅ 新增:同样处理 CC 收件人(注意去空格,避免解析失败)
foreach ($recipientscc as $email) {
$email = trim($email);
if (!empty($email)) {
fwrite($socket, 'RCPT TO: <'.$email.'>'."\r\n");
server_parse($socket, '250');
}
}⚠️ 注意事项:
- RCPT TO: 是信封级(envelope-level) 命令,必须为每个实际接收邮箱调用一次;
- To: 和 Cc: 头字段(header-level)仅影响邮件客户端如何显示,不决定投递权限;
- 若CC邮箱格式不规范(如含多余空格、换行或非法字符),RCPT TO: 会失败,建议使用trim()预处理;
- BCC同理:需调用RCPT TO:,但不在邮件头中出现,实现“隐藏收件人”。
? 补充建议:提升健壮性与可维护性
- 统一收件人处理逻辑:可合并To/CC/BCC为一个收件人数组,避免重复代码;
- 验证邮箱格式:使用filter_var($email, FILTER_VALIDATE_EMAIL)提前过滤无效地址;
- 启用认证(推荐):当前代码注释掉了AUTH LOGIN段落,生产环境务必启用SMTP身份验证(端口建议改用587/TLS或465/SSL);
- 错误处理增强:server_parse()目前仅输出错误,建议抛出异常或返回布尔值便于上层捕获;
- 考虑使用成熟库:如PHPMailer或Symfony Mailer,自动处理RCPT、MIME、编码、重试等细节,大幅降低出错风险。
✅ 验证是否生效
发送后检查SMTP服务器日志(如Postfix、Exim)或使用MailHog、Mailtrap等测试工具捕获原始SMTP会话,确认RCPT TO:命令是否包含所有CC邮箱。若仍失败,请检查:
- CC邮箱是否被目标服务器拒收(SPF/DKIM/DMARC策略);
- 邮箱是否存在或已满;
- 网络防火墙是否拦截了SMTP连接。
遵循以上修正,您的CC收件人即可正常接收邮件——本质不是“头没写对”,而是“门没敲开”。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















