$shuoming {$json_html} {$ewaishuoming}
邮件发送
接口说明: 此接口是内置多种流行邮件服务商,在系统设置中,邮件设置页面进行设置,并按分类调用邮件服务商!
目前支持:qq、126、163、gmail、阿里云邮件服务商。
API接口:
{$_G['siteurl']}plugin.php?id=xinxiuvip_network:admin&adminkey=管理密钥&action=send_mail&type=163&toemail=3188639@qq.com|xinxiuvip126@126.com&subject=邮件标题&message=邮件内容&attachments=tvDVaJ|NeA2HQ|zwEL9x&soft=soft_key
请求参数
参数 必填 示例 说明
adminkey 888888 管理密钥
action send_mail 接口方法
soft soft_key 请输入软件key,可在后台软件管理中查看
type qq 邮箱类型 (qq, gmail, 163, 126, aliyun),在后台系统设置-》邮件设置中设置。
toemail 3188639@qq.com 接收邮件邮箱,群发多个邮箱,用|隔开
subject 邮件标题 邮件标题
message 邮件内容 邮件内容
sitename 发件人名称 填写发件人名称,默认是软件名称
attachments tvDVaJ|NeA2HQ|zwEL9x 邮箱附件,填写文件变量的文件密钥key,多个附件用|隔开。
返回参数
参数 必回 示例 说明
邮件系统错误提示
  • 1. SMTP 连接 / 认证错误(最常见)
    这类错误是发送邮件时最先遇到的,核心是「无法连接邮件服务器」或「账号密码验证失败」。
    错误信息示例 核心原因 解决办法
    SMTP Error: Could not connect to SMTP host. 1. SMTP 服务器地址 / 端口错误
    2. 服务器禁用了对应端口(如 25 端口被封)
    3. 本地防火墙 / 服务器安全组拦截
    4. 未开启 SSL/TLS 加密
    1. 确认 SMTP 地址(如 163 是 smtp.163.com,QQ 是 smtp.qq.com)
    2. 改用 SSL/TLS 端口(163/QQ 用 465,Gmail 用 587)
    3. 关闭本地防火墙,或在服务器安全组放行对应端口
    4. 开启 $mail->SMTPSecure = 'ssl';(465 端口)或 'tls'(587 端口)
    SMTP Error: Authentication failed. 1. 邮箱账号错误
    2. 用了邮箱主密码而非「客户端授权码」
    3. 授权码已失效 / 未开启 POP3/SMTP 服务
    1. 核对邮箱账号是否正确
    2. 去邮箱网页端生成「客户端授权码」(替代主密码)
    3. 重新开启 POP3/SMTP 服务,重置授权码
    SMTP server error: 535 Authentication Failed 同上(认证失败的标准返回码) 同上
    SMTP timeout. 服务器响应超时(网络延迟 / 服务器负载高) 1. 增加超时时间:$mail->Timeout = 30;(默认 10 秒)
    2. 切换网络 / 服务器节点
  • 2. 邮件内容 / 格式错误
    这类错误是邮件本身的格式不符合规范,导致发送失败。
    错误信息示例 核心原因 解决办法
    Invalid address: (to): xxx@xxx.com 收件人邮箱格式错误(如少 @、域名非法) 校验收件人邮箱格式:用 filter_var($email, FILTER_VALIDATE_EMAIL) 验证
    No recipient addresses found 未设置收件人($mail->addAddress() 未调用) 确保调用 $mail->addAddress('收件人邮箱', '收件人名称'),且参数不为空
    Missing message body 未设置邮件正文($mail->Body 为空) 至少设置 $mail->Body(HTML 正文)或 $mail->AltBody(纯文本正文)
    Invalid address: (from): xxx@xxx.com 发件人邮箱格式错误 / 未设置 核对发件人邮箱格式,确保调用 $mail->setFrom('发件人邮箱', '发件人名称')
  • 3. 附件 / 资源错误
    处理附件时的常见错误,多与文件路径 / 权限相关。
    错误信息示例 核心原因 解决办法
    Could not access file: /path/to/file.pdf 1. 附件文件路径错误
    2. PHP 无读取文件的权限
    3. 文件不存在
    1. 用绝对路径(如 __DIR__ . '/file.pdf')
    2. 给文件设置可读权限(如 chmod 644)
    3. 先判断文件是否存在:file_exists($file_path)
    Attachment file is empty: /path/to/file.pdf 附件文件为空(大小为 0) 检查文件是否完整,避免上传 / 生成空文件
  • 4. 其他系统 / 配置错误
    错误信息示例 核心原因 解决办法
    Language string failed to load: phpmailer.lang-zh.php 缺少对应的语言包文件 1. 确保 PHPMailer 目录下有 language 文件夹
    2. 手动设置语言:$mail->SetLanguage('zh', 'phpmailer/language/');
    SMTP Error: Data not accepted. 邮件内容被服务器判定为垃圾邮件(含敏感词 / 发件人信誉低) 1. 优化邮件标题 / 正文,避免敏感词
    2. 检查发件人邮箱是否被列入黑名单
    3. 配置 DKIM/SPF 解析(提升发件人信誉)