首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防火墙云功能,无需8月发送邮件。

防火墙云功能,无需8月发送邮件。
EN

Stack Overflow用户
提问于 2018-11-26 13:05:23
回答 1查看 1.1K关注 0票数 0

我的网站是托管在火基地,我希望发送一封电子邮件从喜欢no-reply@mydomain.com的收件人。我是被迫创建这封电子邮件并为SMTP连接提供登录信息,还是有一种方式可以发送邮件而不实际创建它(没有AUTH凭据),有点像PHP中的mail()

目前,我正在用GMail和nodemailer发送邮件。

代码语言:javascript
复制
var transporter = nodemailer.createTransport('smtps://USER@gmail.com:PASSWORD@smtp.gmail.com');

exports.sendMail = functions.https.onRequest((req, res) => {
    var mailOptions = {
        to: 'someone@gmail.com',
        subject: 'Test Mail',
        html: 'Testing the Mail'
    }
    transporter.sendMail(mailOptions, function (err, response) {
        if (err) {
            res.end('Mail not sent');
        } else {
            res.end('Mail sent');
        }
    });
});

有出路吗?谢谢你帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 13:14:09

使用Sendgrid可以很容易地做到这一点,如下所示。以下是node.js库文档:https://github.com/sendgrid/sendgrid-nodejs

Sendgrid是Firebase推荐的选项,请参见https://github.com/firebase/functions-samples/tree/Node-8/quickstarts/email-users,其中有这样的说法:

如果您计划发送大量电子邮件,您应该使用一个专业的电子邮件发送平台,如Sendgrid、Mailjet或Mailgun。

有一个每月12.000封免费邮件的“慷慨”免费计划,参见https://console.cloud.google.com/marketplace/details/sendgrid-app/sendgrid-email

代码语言:javascript
复制
const functions = require('firebase-functions');
const admin = require('firebase-admin');

......

const sgMail = require('@sendgrid/mail');
const sengridkey =
  'SG.............................................';
sgMail.setApiKey(sengridkey);

......

exports.sendMail = functions.https.onRequest((req, res) => {

  const msg = {
    to: 'someone@gmail.com',
    from: 'originator@gmail.com',     //  <-  HERE, set the from
    subject: 'Test Mail',
    html: '<h1>Test Mail</h1>',
  };

   sgMail
     .send(msg)
     .then(() => {
         res.status(200).send('Mail sent');
      })
      .catch(err => {
         console.error('ERROR:', err);
         res.status(500).send('Mail not sent: ' + err);
      });

});

请注意,您需要在“火焰”或“烈火”的价格计划。

事实上,免费的“火花”计划“只允许向谷歌拥有的服务提出出站网络请求”。参见https://firebase.google.com/pricing/ (将鼠标悬停在“云函数”标题后面的问号上)

因为Sendgrid不是谷歌拥有的服务,所以你需要切换到“火焰”或“火焰”计划。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53481773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档