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

PHP集成MailerSend API调用无响应不发邮件且无报错如何解决

排查与修复方案

核心问题排查

你当前代码最常见的出错点是setFrom参数错误:该方法需要传入完整的发件人邮箱地址(例如service@xxx.com),仅传入发送域名会直接导致请求非法,接口直接拒绝处理。

通用排查步骤

  • 开启PHP错误显示,在脚本最顶部添加配置,输出所有PHP层面的报错:
error_reporting(E_ALL);
ini_set('display_errors', 1);
  • 用try-catch包裹API调用逻辑,捕获SDK抛出的异常,获取具体的错误信息
  • 校验配置项有效性:API密钥是否和后台生成的一致、发件域名是否已经完成DNS验证、收件人邮箱状态正常
  • 确认服务器网络无拦截:可手动执行curl https://api.mailersend.com确认服务器可以正常访问MailerSend接口
  • 纯文本正文不要留空,可降低邮件被标记为垃圾邮件的概率

修正后的参考代码

<?php
// 开启全局错误显示
error_reporting(E_ALL);
ini_set('display_errors', 1);

use MailerSend\MailerSend;
use MailerSend\Helpers\Builder\Recipient;
use MailerSend\Helpers\Builder\EmailParams;
use Http\Client\Exception as HttpClientException;

include('settings.php');

try {
    $mailersend = new MailerSend(['api_key' => $mailing_api]);

    $recipients = [
        new Recipient('recipient@email.com', 'recipient_name'),
    ];

    $emailParams = (new EmailParams())
        // 替换为完整的发件人邮箱,不要仅填域名
        ->setFrom('noreply@' . $mailing_sending_domain)
        ->setFromName($mailing_from_name_users)
        ->setRecipients($recipients)
        ->setSubject('测试消息')
        ->setHtml('<p>测试消息</p>')
        ->setText('测试消息纯文本内容');

    $response = $mailersend->email->send($emailParams);
    // 打印正常返回结果
    var_dump($response);
} catch (HttpClientException $e) {
    // 输出HTTP请求相关错误
    echo '接口请求错误:' . $e->getMessage() . PHP_EOL;
    // 输出接口返回的详细错误内容
    if ($e->hasResponse()) {
        echo '接口返回详情:' . $e->getResponse()->getBody()->getContents() . PHP_EOL;
    }
} catch (Exception $e) {
    // 输出其他通用错误
    echo '通用错误:' . $e->getMessage() . PHP_EOL;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:54:01