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

如何在Node.js中通过Klaviyo向指定邮箱发送邮件?

在Node.js中使用Klaviyo发送邮件的方案

核心结论

完全可以在Node.js应用中通过Klaviyo的API或官方SDK向特定邮箱发送邮件,主要有两种常用实现方式:使用官方Node.js SDK,或者直接调用REST API。

一、使用Klaviyo官方Node.js SDK

1. 安装SDK

执行以下命令安装官方SDK:

npm install @klaviyo/client
# 或使用yarn
yarn add @klaviyo/client

2. 初始化客户端

需要从Klaviyo后台获取私有API密钥(具备邮件发送权限),并指定你的账户区域(US或EU):

const { KlaviyoAPI } = require('@klaviyo/client');

const klaviyo = new KlaviyoAPI({
  apiKey: 'YOUR_KLAVIYO_PRIVATE_API_KEY',
  region: 'US' // 若账户在欧洲区则填'EU'
});

3. 发送邮件的两种场景

场景1:触发预定义自动化流(Flow)

如果你在Klaviyo后台创建了触发式流(比如用户订阅后发送欢迎邮件),可通过API触发该流定向发送给目标邮箱:

async function triggerFlow(targetEmail) {
  try {
    const response = await klaviyo.Flow.triggerFlow({
      flowId: 'YOUR_FLOW_ID', // 从Klaviyo后台流设置中复制ID
      profiles: [
        { email: targetEmail }
      ]
    });
    console.log('邮件流触发成功:', response);
  } catch (err) {
    console.error('触发失败:', err);
  }
}

// 调用示例
triggerFlow('user@example.com');

场景2:发送交易类邮件

针对订单确认、密码重置这类一次性交易邮件,使用交易邮件API:

async function sendTransactionalEmail(targetEmail) {
  try {
    const response = await klaviyo.Transactional.sendTransactionalEmail({
      templateId: 'YOUR_TRANSACTIONAL_TEMPLATE_ID', // 后台创建的交易邮件模板ID
      fromEmail: 'verified-sender@yourdomain.com', // 已通过Klaviyo验证的发件邮箱
      subject: '你的订单已确认',
      to: [{ email: targetEmail }],
      // 模板动态变量(匹配模板中的占位符)
      dynamicTemplateData: {
        orderNumber: 'ORD-78901',
        userName: 'Jane Smith'
      }
    });
    console.log('交易邮件发送成功:', response);
  } catch (err) {
    console.error('发送失败:', err);
  }
}

// 调用示例
sendTransactionalEmail('user@example.com');

二、直接调用Klaviyo REST API

如果不想依赖SDK,可使用axios或fetch直接调用API:

1. 触发自动化流示例(用axios)

const axios = require('axios');

async function triggerFlowViaAPI(targetEmail) {
  try {
    const res = await axios.post(
      'https://a.klaviyo.com/api/flows/YOUR_FLOW_ID/trigger/',
      { profiles: [{ email: targetEmail }] },
      {
        headers: {
          'Authorization': 'Klaviyo-API-Key YOUR_PRIVATE_API_KEY',
          'Content-Type': 'application/json',
          'revision': '2024-02-15' // 使用Klaviyo最新API版本
        }
      }
    );
    console.log('触发成功:', res.data);
  } catch (err) {
    console.error('触发失败:', err.response.data);
  }
}

2. 发送交易邮件示例

async function sendTransactionalEmailViaAPI(targetEmail) {
  try {
    const res = await axios.post(
      'https://a.klaviyo.com/api/transactional-emails/',
      {
        template_id: 'YOUR_TRANSACTIONAL_TEMPLATE_ID',
        from_email: 'verified-sender@yourdomain.com',
        subject: '密码重置通知',
        to: [{ email: targetEmail }],
        dynamic_template_data: { resetLink: 'https://yourdomain.com/reset' }
      },
      {
        headers: {
          'Authorization': 'Klaviyo-API-Key YOUR_PRIVATE_API_KEY',
          'Content-Type': 'application/json',
          'revision': '2024-02-15'
        }
      }
    );
    console.log('发送成功:', res.data);
  } catch (err) {
    console.error('发送失败:', err.response.data);
  }
}

三、关键API参考要点

  • 触发流API:依赖后台预定义的流,需提供flow_id,仅支持私有API密钥调用。
  • 交易邮件API:需提前在后台创建并验证交易邮件模板,发件邮箱必须经过Klaviyo域名验证。
  • API版本:所有请求需指定最新的API版本号(可在Klaviyo开发者文档中查询),避免兼容性问题。
  • 权限要求:必须使用私有API密钥,公钥仅用于前端事件追踪等非敏感操作,无邮件发送权限。

注意事项

  • 确保账户已开通邮件发送权限,且发件域名/邮箱完成Klaviyo验证。
  • 发送营销类邮件时,需确保目标用户已完成合规订阅(符合GDPR、CAN-SPAM等法规)。
  • 测试阶段建议使用Klaviyo的测试模式,避免向真实用户发送测试邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:13:28