通过联系表单,firebase功能和nodemailer发送电子邮件

时间:2017-04-30 07:52:04

标签: angular firebase nodemailer google-cloud-functions

我使用这些技术:

  • Angular 4
  • 火力地堡
  • firebase hosting
  • firebase功能
  • firebase实时数据库
  • firebase storage

我在firebase托管上托管我的网站,我有一个如下图所示的联系表单,我希望每次用户提交该表单,发送电子邮件给网站管理员

我将如何使用firebase和Nodemailer

发送电子邮件

我是否需要在functions文件夹中的index.js中使用nodemailer,或者这是错误的?

  

这是我的联系表格。

enter image description here

1 个答案:

答案 0 :(得分:8)

当你不确定某些事情是如何完成的时候,总是很好。在这里,我将尝试给您一些简单的步骤,了解如何实现这一目标。

首先确保在项目中初始化Firebase功能。如果您不知道如何做到这一点,只需谷歌它,在他们的公司网站上,他们对每个主题都有惊人的解释。

完成此操作后,使用HTTP触发器设置单个Firebase功能。确保在项目的Firebase功能文件夹中运行npm install nodemailer@2.4.1 --save。确实安装版本2.4.1至关重要,因为在尝试部署函数本身之后所有版本都会崩溃。 (我还没弄明白为什么)

修改

我刚刚发现Firebase功能与较新版本的Nodemailer崩溃的原因是什么。这是我正在运行的Node版本。更新我的节点后,一切都很好。这里也提到了这个问题: Link to official GitHub page

所以,仍然由您决定使用哪个版本,只需确保如果您运行的是最新的Nodemailer,它还需要更新的Node。 ;)

完成后,打开Firebase功能的代码,转到Nodemailer的官方网站,查看单个邮件的编写和发送方式。这里有一个很棒的例子,实际上大部分是复制粘贴到你的代码中,还有一些额外的配置(用户名和密码)。

确保从您的前端Angular应用程序中,您使用表单上的字段中的数据发出POST请求。您还需要确保当Firebase功能收到请求时,它会配置电子邮件,发送它,并在最后响应正确的状态代码和消息。

我写的所有内容可能听起来有点复杂,我不知道你的ICT能力,但要确保你仔细阅读,谷歌你不明白,如果你仍然找不到答案,请确保你在这里回复,所以我或其他人可以给你一个帮助。

我还会在这里添加一个链接,您可以在此过程中指导自己。

Click here to see an example from Google themselves

祝你好运。