在TypeScript中为Firebase Cloud功能配置Mailgun

时间:2019-07-11 15:09:59

标签: typescript google-cloud-functions mailgun

我正在Firebase中执行Cloud Function,以便在documentation之后发送带有mailgun的电子邮件。

我正在使用 TypeScript ,但找不到有关如何设置API KEY,DOMAIN以及最后如何发送电子邮件的示例。我发现的所有示例都在JavaScript中。

JavaScript 中的示例:

var API_KEY = 'YOUR_API_KEY';
var DOMAIN = 'YOUR_DOMAIN_NAME';
var mailgun = require('mailgun-js')({apiKey: API_KEY, domain: DOMAIN});

const data = {
  from: 'Excited User <me@samples.mailgun.org>',
  to: 'foo@example.com, bar@example.com',
  subject: 'Hello',
  text: 'Testing some Mailgun awesomeness!'
};

mailgun.messages().send(data, (error, body) => {
  console.log(body);
});

TypeScript

const API_KEY = 'YOUR_API_KEY';
const DOMAIN = 'YOUR_DOMAIN_NAME';

import * as mailgun from 'mailgun-js';
// How to set up ?

// How to send the email ?

我曾尝试使用ts-mailgun(一种用于发送电子邮件的包装程序),但是由于部署该功能时出错,因此无法正常工作。

我的目标是使用TypeScript正确配置mailgun以向用户发送电子邮件。

2 个答案:

答案 0 :(得分:2)

npm i ts-mailgun

然后:


import { NodeMailgun } from 'ts-mailgun';

const mailer = new NodeMailgun();
mailer.apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // Set your API key
mailer.domain = 'mail.my-sample-app.com'; // Set the domain you registered earlier
mailer.fromEmail = 'noreply@my-sample-app.com'; // Set your from email
mailer.fromTitle = 'My Sample App'; // Set the name you would like to send from

mailer.init();

// Send an email to test@example.com
mailer
    .send('test@example.com', 'Hello!', '<h1>hsdf</h1>')
    .then((result) => console.log('Done', result))
    .catch((error) => console.error('Error: ', error));

来自ts-mailgun documentation

答案 1 :(得分:1)

这个问题来自一年多以前,但在检查了此处 master 页面中链接的 GitHub 页面后:

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/58081d555e64d07049d2da6115e5118240162c73/types/mailgun-js/index.d.ts#L18

你可以看到ConstructorParams接口,看看它在哪里被调用。看起来您需要像下面那样实例化 r.Get("/user", MustParams(http.HandlerFunc(sayHello), "key", "auth")) 。这样做之后,这些类型开始为我工作。

@types/mailgun-js