当前位置: 首页 > 面试题库 >

在Angle 2应用程序中从Cloud Functions for Firebase发送Mailgun电子邮件

黄啸
2023-03-14
问题内容

我正在尝试从Firebase云功能使用Mailgun的api发送电子邮件。我曾尝试在Cloud
Function中实现相同的nodejs教程,但是我总是收到“错误:无法处理请求”。请我做错了什么。

下面的云功能代码

 <pre>
  <code>
 var functions = require('firebase-functions');

 var nodemailer = require('nodemailer');

  var auth = {
  auth: {
      api_key: '###################',
       domain: 's###############g'
   }
 }
 exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase!");
  });

   var nodemailerMailgun = nodemailer.createTransport(auth);

 exports.sendEmail = functions.https.onRequest((request, response) =>{
  //app.get('/', function(req, res) {
   test();
 });

  function test(){
     const mailOptions = {
        //Specify email data
            from: "info@xyz.com",
            //The email to contact
        to: "xyz@yahoo.com",
        //Subject and text data  
        subject: 'Hello from Mailgun',
        text: 'Hello, This is not a plain-text email, I wanted to test        some spicy Mailgun sauce in NodeJS! <a href="http://0.0.0.0:3030/validate?' +     req.params.mail + '">Click here to add your email address to a mailing     list</a>'
   };
    return smtpTransport.sendMail(mailOptions).then(() => {
    console.log("It works");
  });
}
</pre>

谢谢你的协助。


问题答案:

如@GokulKathirvel所述,只有付费帐户才能发送出站电子邮件。但是我能够证明功能仪表板中的功能。触发该功能时,您会收到以下消息:

未配置结算帐户。无法访问外部网络,并且配额受到严格限制。配置计费帐户以消除这些限制

有了这一点,您还应该能够使用node package来做到这一点mailgun-js

var functions = require('firebase-functions')
var mailgun = require('mailgun-js')({apiKey, domain})

exports.sendWelcomeEmail = functions.database.ref('users/{uid}').onWrite(event => {

  // only trigger for new users [event.data.previous.exists()]
  // do not trigger on delete [!event.data.exists()]
  if (!event.data.exists() || event.data.previous.exists()) {
    return
  }

  var user = event.data.val()
  var {email} = user

  var data = {
    from: 'app@app.com',
    subject: 'Welcome!',
    html: `<p>Welcome! ${user.name}</p>`,
    'h:Reply-To': 'app@app.com',
    to: email
  }

  mailgun.messages().send(data, function (error, body) {
    console.log(body)
  })
})

来源https://www.automationfuel.com/firebase-functions-sending-
emails/



 类似资料:
  • 问题内容: 在我的AngularJS Web应用程序之一中,我需要通过向相关人员发送电子邮件来确认密码。如何在AngularJS中实现呢?我是.NET专家,正在使用Visual Studio 2013。 问题答案: 我已经通过网络服务实现了,请参考下面的代码片段 和ajax调用为

  • 我正在将Mailgun集成到我的iOS应用程序中,并尝试发送带有附件的电子邮件。电子邮件已发送,但附件似乎已被忽略。有什么想法吗?代码如下。我使用的是AFNetworking 2,我没有使用本机的Mailgun Objective-C SDK,因为它似乎没有得到维护。 我可以使用curl发送附件,例如:

  • 我研究了以下问题和答案:spring boot-无法连接到SMTP主机:SMTP.gmail.com,端口:25,响应:421 我想做同样的事情--用Gmail服务器从spring boot应用程序发送电子邮件。 我的配置是: 这是从另一个问题复制的,只有用户名和密码已经改变了我的需要。我的scienario唯一不同的是,电子邮件地址的域不是gmail.com。 我的电子邮件客户端类是: 我的例外

  • 我正在用Android开发一个应用程序。我不知道如何从应用程序发送电子邮件?

  • 我正在做一个学校项目,我试图在创建帐户时发送一封验证电子邮件,但我不断收到一个身份验证错误,即使我的凭据是正确的。 错误日志: 我尝试了几种不同的身份验证器,但似乎都不起作用!谢谢!