我正在创建一个使用 Mailchimp 发送某些交易电子邮件的应用程序。
他们在这里有很棒的文档:https://mailchimp.com/developer/api/transactional/messages/send-using-message-template/
但是我使用打字稿,所以这行:
var mailchimp = require("mailchimp_transactional")("API_KEY");
不起作用,我收到以下错误:
Error: Cannot find module 'mailchimp_transactional'
我知道这是一件小事,但我根本不知道如何解决它。我发现一篇文章描述了在这里创建自己的类型文件:@mailchimp/mailchimp_marketing/types.d.ts'不是nodeJs中的模块
但是必须有一个更快更简单的解决方案。它还没有明确说明在这种情况下如何设置 API 密钥。
我尝试导入 @mailchimp/mailchimp_transactional 模块,但没有成功。 我当然也跑步了
npm install @mailchimp/mailchimp_transactional
任何帮助将不胜感激,这里有一个完整的示例,以防它有帮助。
var mailchimp = require("mailchimp_transactional")("API_KEY");
export const testSendEmailFromTemplate = async () => {
let mcbody = {
template_name: "my-template",
template_content: [{
name:"firstname",
content:"INJECTED.BY.TEMPLATE.CONT.firstname"
},
{
name:"surname",
content:"INJECTED.BY.TEMPLATE.CONT.surname"
}],
message: {
to:{
email:"[email protected]",
name: "Test",
type: "to"
}
},
async:true
};
return await mailchimp.messages.sendTemplate(mcbody);
}
如果有人不幸遇到这个问题,因为 Mailchip 的文档不适合打字稿设置,并且您不确定如何使其“正常工作”,这里就是答案:
const mailchimpFactory = require("@mailchimp/mailchimp_transactional/src/index.js");
const mailchimp = mailchimpFactory("PUTKEYHERE");
这会直接拉入 JavaScript 文件,然后第二行初始化对象。
祝大家好运!
截至 2022 年 3 月,这些类型已添加到 DefinitelyTyped 并且可以通过运行来访问
npm install --save-dev @types/mailchimp__mailchimp_transactional
我在节点/Typescript 项目中遇到了同样的问题,但这对我有用:
const mailchimp = require('@mailchimp/mailchimp_marketing')
导出类 MailchimpServices {
constructor() {
mailchimp.setConfig({
apiKey: '...',
server: 'us5',
});
}
async ping() {
console.log('Start mailchimp ping!')
const response = await mailchimp.ping.get();
console.log(response);
}
}
在 2023 年,使用 typescript 我发现可以这样做:
import * as mailchimp from '@mailchimp/mailchimp_marketing';
或者只是
import mailchimp from '@mailchimp/mailchimp_marketing';
如果 tsconfig 中有
esModuleInterop: true
。然后:
mailchimp.setConfig({ apiKey: 'your_key', server: 'us10' });
const result = await mailchimp.ping.get();
对于那些将其与 React 一起使用的人,请先安装它
yarn add @mailchimp/mailchimp_transactional
yarn add @types/mailchimp__mailchimp_transactional -D
然后像这样使用
import mailchimp from '@mailchimp/mailchimp_transactional'
async function run() {
const mctx = mailchimp('YOUR-KEY')
const response = await mctx.users.ping()
console.log(response)
}
run()