当前位置: 首页 > 知识库问答 >
问题:

从Firebase webapp发送邮件

松旭
2023-03-14
js prettyprint-override">var express = require('express');
var app =  express();
var nodemailer=require('nodemailer');

var transporter = nodemailer.createTransport('smtps://username@gmail.com:password@smtp.gmail.com');
app.get('/sendMail', function(req,res){
	var mailOptions={
		to: 'receiver@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');
		}
	});
}).listen(9091);

console.log('This is running');

我正在开发firebase web应用程序。我需要通过我的网络应用发送电子邮件。我看了一些教程,找到了一些代码。使用上述代码,我可以发送电子邮件。它在端口9091中运行。当地址栏上有www.mywebsite时,将发送此消息。com/sendMail。但是,当我将此页面托管到Firebase时,此代码中要做哪些更改,端口号是否必须更改?。请帮助在我的web应用程序中实现此代码。

共有1个答案

蓟俊杰
2023-03-14

2019年更新:或者,您可以使用新的触发器电子邮件Firebase扩展(目前处于测试版)。

正如我在评论中提到的,问题是:您的Web应用是使用NodeJS构建的,您正试图将其托管在静态主机环境(Firebase托管)上。但是Firebase也有云功能——一种让你在NodeJS环境中运行功能的服务。因此,应该将应用部署到该服务。

开始使用云功能非常容易。由于您已经设置了Firebase主机,您只需转到该目录并使用以下命令设置云功能:

firebase init functions

将创建一个名为“functions”的新文件夹,并创建一个索引。js文件将自动添加到该文件夹中。现在,您将在该文件中编写函数(实际上,我们只需要一个由HTTP触发的函数来发送电子邮件)。

因此,为了创建此函数,您不再需要Express。您可以删除它,然后稍微更改索引。js文件添加firebase函数,因此它将成为:

//var express = require('express'); No longer needed
//var app =  express(); No longer needed
var nodemailer=require('nodemailer');
const functions = require('firebase-functions');

var transporter = nodemailer.createTransport('smtps://username@gmail.com:password@smtp.gmail.com');

exports.sendMail = functions.https.onRequest((req, res) =>{
    var mailOptions={
        to: 'receiver@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');
        }
    });
});

现在,当您想要发送消息时,可以使用以下url:https://us-central1-

替换

 类似资料:
  • 问题内容: 用Java发送和接收邮件的最简单方法是什么。 问题答案: 不要忘记Jakarta Commons Email 发送邮件。它具有非常易于使用的API。

  • 问题内容: 我知道在此之前已经问过很多类似的问题,但是我认为这个问题有些不同:) 我正在编写一个maven报告插件,它将向用户列表发送电子邮件。我现在遇到的问题是,当我使用java5运行该代码时,该代码似乎运行良好,但使用java6失败。实际上,该插件是用Groovy编写的,并使用commons-email实用程序发送html消息: 该项目依赖于javax.mail:mail:1.4.1和java

  • 我可以从主机发送邮件,使用邮件: 但我想使用主机服务器从docker容器发送邮件。在运行命令中,当我尝试将端口映射到25端口时,Docker说“端口已在使用中”: 我怎样才能达到目标?主机是Centos,docker使用Ubuntu。

  • 尽管Python 通过smtplib 模块使得发送邮件很简单,Django 仍然在此基础上提供了几个轻量的封装包。这些封装包使得发送邮件非常快速、让开发中测试发送邮件变得很简单、并且支持不使用SMTP 的平台。 这些代码包含在django.core.mail模块中。 简单例子 两行代码实现: from django.core.mail import send_mail send_mail('Su

  • cmf_send_email($address, $subject, $message) 功能 发送邮件 参数 $address: string 收件人邮箱 $subject: string 邮件标题 $message: string 邮件内容 返回 array 格式 array( "error"=>0|1,//0代表出错 "message"=> "出错信息" );

  • X1.0新增 sp_send_email($address,$subject,$message) 功能: 发送邮件 参数: $address:收件人地址 $subject:邮件主题 $message:邮件内容 返回: 类型数组,发送状态和信息 array( "error"=>"1",//有错误 "message"=>""错误信息 ); array( "error"=>"0