Maison  >  Article  >  interface Web  >  Partagez un exemple des étapes pour enregistrer un e-mail à l'aide de Node.js

Partagez un exemple des étapes pour enregistrer un e-mail à l'aide de Node.js

零下一度
零下一度original
2017-07-26 15:06:161705parcourir

Aujourd'hui, j'ai appris comment node implémente la fonction d'activation par e-mail. Cette fonction est très courante lorsque nous enregistrons un compte, nous aurons certainement cette étape. Voyons comment implémenter cette fonction

<.> 1. Enregistrez d'abord une adresse e-mail prenant en charge l'envoi d'e-mails de vérification. L'adresse e-mail 126 de NetEase peut être utilisée

Connectez-vous après une inscription réussie, puis cliquez sur Paramètres dans la barre de navigation. et sélectionnez POP3/SMTP/IMAP. Activez le service POP3/SMTP/IMAP et définissez le code d'autorisation.

2. Téléchargez le plug-in nodemailer

Saisissez sur la ligne de commande :

npm install --save nodemailer

3 . Écrivez le code pour envoyer l'e-mail :

1. Encapsulez le code pour envoyer l'e-mail d'activation et exportez-le :

//email.js
// 引入 nodemailer
var nodemailer = require(&#39;nodemailer&#39;);
// 创建一个SMTP客户端配置
var config = {
    host: &#39;smtp.126.com&#39;, 
    port: 25,
    auth: {
      user: &#39;xxx@126.com&#39;, //刚才注册的邮箱账号
      pass: &#39;xxxxxx&#39; //邮箱的授权码,不是注册时的密码
    }
  };
// 创建一个SMTP客户端对象
var transporter = nodemailer.createTransport(config);
// 发送邮件
module.exports = function (mail){
  transporter.sendMail(mail, function(error, info){
    if(error) {
      return console.log(error);
    }
    console.log(&#39;mail sent:&#39;, info.response);
  });
};

2. Test :

//sendtest.js
var send = require(&#39;./mail-test&#39;);
// 创建一个邮件对象
var mail = {
  // 发件人
  from: &#39;流觞曲水 <xxx@126.com>&#39;,
  // 主题
  subject: &#39;测试&#39;,
  // 收件人
  to: &#39;xxx@qq.com&#39;,
  // 邮件内容,HTML格式
  text: &#39;点击激活:xxx&#39; //接收激活请求的链接
};
send(mail);

En cas de succès, vous pouvez voir le message envoyé dans la boîte aux lettres de test.

4. Étapes de vérification En ce qui concerne un projet de blog personnel que j'ai écrit auparavant, je parlerai brièvement de la façon de mettre en œuvre la vérification des e-mails. .

1. Dans la structure des données utilisateur de la base de données que vous définissez, il doit y avoir des champs tels que le code d'activation, l'heure d'expiration et s'il a été activé, qui sont utilisés pour juger lors de l'activation

{
  code: String, //激活码,格式自己定义
  date: Number, //过期日期,过期后不能激活
  islive: Boolean //判断是否激活
}

2. Envoyez le lien d'activation, qui contient le nom d'utilisateur et le code d'activation, comme suit :

// 创建一个邮件对象
  var mail = {
    // 发件人
    from: &#39;小静博客 <xiaojing@126.com>&#39;,
    // 主题
    subject: &#39;激活账号&#39;,
    // 收件人
    to: usermess.email, //发送给注册时填写的邮箱
    // 邮件内容,HTML格式
    text: &#39;点击激活:<a href="http://localhost:3000/checkCode?name=&#39;+ usermess.name +&#39;&code=&#39;+ usermess.code + &#39;" rel="external nofollow" ></a>&#39;
  };

3 . Répondez à la demande d'activation et recherchez en fonction du nom d'utilisateur du lien d'activation. Si l'utilisateur existe, déterminez si le code d'activation est cohérent et déterminez si le code d'activation a expiré. Si tous sont corrects, modifiez-le. l'état d'activation. À ce moment, l'activation est réussie, comme indiqué dans le code suivant :

exports.checkCode = function (req, res){
  var username = req.query.name;
  var code = req.query.code;
  var outdate = req.query.outdate;
  User.findOne({name: username}, function (err, user){
    if (user.code === code && (user.date - Date.now()) > 0){
      User.update({name: username}, {islive: true}, function (err){
        if (err){
          res.render(&#39;login&#39;, {
            title: &#39;登录&#39;,
            error: &#39;激活失败!&#39;
          });
        }else{
          res.render(&#39;login&#39;, {
            title: &#39;登录&#39;,
            error: &#39;激活成功请登录!&#39;
          });
        }
      });
    }
  });
}

Ce qui précède est l'introduction de l'éditeur sur la façon de procéder. implémentez la fonction d'activation par e-mail d'inscription dans Node.js. J'espère que cela vous sera utile. Si vous avez des questions, bienvenue. Laissez-moi un message et je vous répondrai à temps !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn