如何从任何 xml 文件中获取邮件内容

How to get the mail content from any xml file

我在我的平均堆栈应用程序中使用 nodemailer。我正在使用它成功发送邮件。

现在我正在尝试根据情况发送邮件。为此,我将邮件内容存储在 xml 页面中,我需要根据 nodemailer 的 html 标签中的关键字获取该邮件内容。

例如:如果用户注册了,那么将通过在 xml 文件中获取注册关键字来发送注册邮件。

XML文件如下图

   <?xml version="1.0" standalone="yes"?>
<MailContent>
  <registration>
    <AfterSignUp>
     <html><body><p>
      Hello #FirstName #LastName
     </p>
      <p>
      <br/>
      You recently registered for #ProjectName.To complete your registration, please <a href="#URL">Click Here </a> to confirm 'your' account.
      </p> 
     <br/>
      <p>
      Warm Regards,
      </p>
      <br/>
      <p>
      System Administrator
      </p>
      <br/>
      <p>
      #ProjectName.
      </p></body></html></AfterSignUp>
    <SignUpSubject>Registration confirmation for #ProjectName</SignUpSubject>
  </registration>

  <ForgotPassword>
    <ForgetContent><html><body><p>
      Hello #FirstName #LastName
      </p>
      <p>
      You have requested to have your password reset for your account at #ProjectName.
      </p>
      <p>
      Click the below link to reset your account password
      </p>
      <p>
      <a href="#URL">Reset Password </a>
      </p>
      <br/>
       <p>
      Warm Regards,
      </p>
      <br/>
      <p>
      System Administrator
      </p>
      <br/>
      <p>
       #ProjectName.
      </p></body></html></ForgetContent>
    <ForgetSubject>#ProjectName password recovery.</ForgetSubject>
  </ForgotPassword>

</MailContent>

节点邮件邮件选项如下

    let mailOptions = {
    from: 'mailid', // sender address
    to: 'mailid', // list of receivers
    subject:, // Subject line

    html: '' // html body
};

在上面如何在 nodemailer 选项中获取 xml 文件内容

我已经通过handlebars和fs渲染html页面解决了这个问题,参考Nodemailer快速解决

我已经创建了 registrationcontent.html 并在节点邮件程序中呈现它,如下所示

 var readHTMLFile = function (path, callback) {
                        fs.readFile(path, { encoding: 'utf-8' }, function (err, html) {
                            if (err) {
                                throw err;
                                callback(err);
                            }
                            else {
                                callback(null, html);
                            }
                        });
                    };

                    console.log("Sending", user, done);
                    var smtpConfig = {
                        host: mailconfig.host,
                        port: mailconfig.port,
                        auth: {
                            user: mailconfig.USER,
                            pass: mailconfig.PASSWORD
                        }

                    };
                    console.log(smtpConfig);
        var transporter = nodemailer.createTransport(smtpConfig);

     readHTMLFile(__dirname + '/../MailContents/mail.html', function (err, html) {
                        var template = handlebars.compile(html);
                        var replacements = {
                            FirstName: user.FirstName,
                            LastName: user.LastName,
            URL :`http://sample.com`
                            };
                        var htmlToSend = template(replacements);
                        var mailOptions = {
                            to: user.Email,
                            from: 'mail',
                            subject: 'Registration confirmation',
                            html: htmlToSend
                        };
transporter.sendMail(mailOptions, (err) => {
     console.log("An e-mail has been sent to with further instructions.");
     res.json("Thank you for registering. An Email has been sent to you. Go to registered email inbox to complete the registration process.");
                            done(err);
                        });
                    });

对于快速解决方案,我已经为每封邮件完成了单独的 html,但我只需要使用一个文件 xml 或 html 或包含所有内容的任何其他格式邮件正文在一个文件中,可以通过关键字获取。

Any solution is highly appreciated.

谢谢