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

部署Firebase Functions时使用MailerSend报错:MailerSend不是构造函数

问题解决方案

核心原因

你安装的是MailerSend SDK v2.2.0,但你明确需要使用兼容CommonJS的v1版本。v2版本采用ES模块导出结构,和v1的CommonJS导出完全不同,直接导致TypeError: MailerSend is not a constructor错误。


步骤1:安装正确的SDK版本

卸载当前的v2包,安装v1版本:

npm uninstall mailersend
npm install mailersend@1

步骤2:修正代码导入与使用

按照v1 SDK的规范调整index.js,以下是完整的可运行示例(包含云函数封装):

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()

// 正确导入v1版本的MailerSend类及工具类
const MailerSend = require("mailersend").MailerSend;
const Recipient = require("mailersend").Recipient;
const EmailParams = require("mailersend").EmailParams;

// 推荐使用Firebase环境变量配置API密钥,替代dotenv(部署后dotenv不生效)
const MAILERSEND_API_KEY = functions.config().mailersend.api_key;

const mailersend = new MailerSend({
    api_key: MAILERSEND_API_KEY,
})

// 封装为HTTP触发的云函数
exports.sendEmail = functions.https.onRequest(async (req, res) => {
    const recipients = [
        new Recipient("client@example.com", "Your Client")
    ];

    const emailParams = new EmailParams()
          .setFrom("your@domain.com")
          .setFromName("Your Name")
          .setRecipients(recipients)
          .setReplyTo("reply@domain.com")
          .setReplyToName("Support Team")
          .setSubject("Test Email from Firebase Functions")
          .setHtml("<h1>Hello from MailerSend v1!</h1>")
          .setText("Hello from MailerSend v1!");

    try {
        await mailersend.send(emailParams);
        res.status(200).send("Email sent successfully");
    } catch (error) {
        console.error("MailerSend error:", error);
        res.status(500).send("Failed to send email");
    }
})

步骤3:配置Firebase环境变量(替代dotenv)

本地开发和部署时,用Firebase官方的环境变量管理替代dotenv,避免部署后变量失效:

# 设置API密钥到Firebase配置
firebase functions:config:set mailersend.api_key="your-mailersend-api-key"

# 本地开发时加载配置
firebase functions:config:get > .runtimeconfig.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:26:23