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

Laravel 6项目通过Mailgun旧SMTP API发送MIME邮件时如何设置模板名称?

在Laravel 6中用Mailgun旧SMTP API指定模板名称的正确方法

要通过Mailgun的SMTP API调用模板,你需要用X-Mailgun-Template请求头指定模板的slug(即Mailgun控制台模板板块里的名称,不是显示名称)——你之前尝试的第一种方法是正确的,可能是没注意以下细节导致失败:

  • 确保用模板的slug而非显示名:比如Mailgun控制台里显示的模板名为"用户注册欢迎信",对应的slug可能是user-registration-welcome,必须用这个slug作为X-Mailgun-Template头的值。
  • X-Mailgun-Template-Variables头的值必须是JSON字符串,不能直接传数组。
  • 在Laravel 6的Mailable类中,可通过withSwiftMessage方法添加这些自定义头,示例代码如下:
public function build()
{
    return $this->view('emails.empty') // 传空视图即可,模板会自动替换内容
                ->withSwiftMessage(function ($message) {
                    $message->getHeaders()->addTextHeader(
                        'X-Mailgun-Template',
                        'your-template-slug-here' // 替换为你的模板slug
                    );
                    $message->getHeaders()->addTextHeader(
                        'X-Mailgun-Template-Variables',
                        json_encode([
                            'username' => 'John Doe',
                            'verification_link' => 'https://your-domain.com/verify'
                        ])
                    );
                });
}

额外注意事项:

  • 如果模板是纯文本类型,需确保邮件Content-Type设为text/plain;HTML模板则设为text/html,Laravel默认会处理,有冲突时可手动指定。
  • 无需在X-Mailgun-Variables中添加template变量,也不用把模板名称放到正文里,这些操作都无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:57:47