通过邮件回复解锁一个nodejs程序

Unlock a nodejs program through email answer

我在 Google 家里使用对话流,我有一个发送电子邮件的程序(通过 Nodemailer),我想锁定一个功能,并根据电子邮件的回答解锁它.

也许我可以在电子邮件中放一个 link 作为 "if you agree with this, click on this link, otherwise don't"。

我的程序能得到答案吗?如果是,如何?

这是我用来发送电子邮件的功能:

var transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: '**********',
    pass: '**********'
  }
});

var mailOptions = {
  from: '*********@gmail.com',
  to: '********.********@gmail.com',
  subject: 'Sending Email using Node.js',
  text: 'That was easy!'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }

谢谢。

在设计这个时,您需要考虑很多事情 - 更不用说实际编码了。

  • 不知何故,您首先需要获取用户的地址。 Google 主页(以及 Google 平台上的 Actions)无法将此信息提供给您,向用户询问他们的信息是糟糕的用户体验。

  • 可以 获取他们地址的一种方法是通过帐户链接,这样您就可以 link 他们的 Google 助理帐户到您系统中的帐户。这不会直接给你地址,但由于他们必须先通过你的网站登录,你可以使用 Google 登录(从而获得他们的个人资料信息)或要求他们将其作为你帐户的一部分进程.

  • 一旦你有了他们的地址 - 你想验证它。网络上有大量关于如何正确执行双重选择的建议。确保你跟随他们。也有一些节点模块可以帮助您做到这一点——您不需要自己编写。

  • 安全地编码是不是需要掉以轻心的事情。做错了会让你成为垃圾邮件中继。做得不对可能只会让您被电子邮件提供商视为垃圾邮件。

您所要做的就是定义系统,以便从该电子邮箱发送电子邮件。例如,您可以添加您的 Gmail 帐户和密码。在 var app=express() 行下方的 Server.js 中添加此代码。

var smtpTransport = nodemailer.createTransport({
    service: "gmail",
    host: "smtp.gmail.com",
    auth: {
        user: "",
        pass: ""
    }
});