Node.js 从 Heroku 工作时电子邮件正文缺少数据,但在 localhost 中工作正常

问题描述 投票:0回答:1

仅当通过 heroku 使用但在本地主机上工作正常时,电子邮件正文中才会丢失数据。heroku production 奇怪的是,电子邮件主题中也显示了相同的缺失字段,例如客户名称。

localhost email

主题工作正常,但正文中缺少数据

  const options = {
    viewEngine: {
      extname: '.hbs', // handlebars extension
      layoutsDir: 'email-templates/woStatusUpdate/', // location of handlebars templates
      defaultLayout: 'html', // name of main template
      partialsDir: 'email-templates/woStatusUpdate/', // location of your subtemplates aka. header, footer etc
    },
    viewPath: 'email-templates/woStatusUpdate',
    extName: '.hbs',
  };
  transporter.use('compile', hbs(options));
  try {
    let info = await transporter.sendMail({
      from: '"test123', // sender address
      to: [test123], // receiver
      subject: `Job ${workOrderTS.isCompleted ? '' : 'NOT '}Completed | ${
        workOrderTS.customerName
      } - ${workOrderTS.workOrderNumber}`, // Subject line
      template: 'html',
      context: {
        workOrder: workOrderTS,
      },
    });

html.hbs

                     <tr>
                        <td colspan='3'>
                          <h2>The following job has
                            {{#if workOrder.isCompleted}}{{else}}
                              NOT
                            {{/if}}been Completed:
                          </h2>
                        </td>
                      </tr>
                      <tr>
                        <td><h3>Team:</h3></td>
                        <td><h3>{{workOrder.employeeName}}</h3></td>
                      </tr>
                      {{#if workOrder.isCompleted}}{{else}}
                        <tr>
                          <td><h3>Reason:</h3></td>
                          <td>{{workOrder.statusReason}}</td>
                        </tr>
                      {{/if}}

                      <tr>
                        <td><h3>WO Number</h3></td>
                        <td>{{workOrder.workOrderNumber}}</td>
                      </tr>

                      <tr>
                        <td><h3>Customer Name:</h3></td>
                        <td>{{workOrder.customerName}}</td>
                      </tr>
                      <tr>
                        <td><h3>On-site Notes:</h3></td>
                        <td>{{workOrder.onSiteNotes}}</td>
                      </tr>
node.js handlebars.js nodemailer hbs
1个回答
0
投票

我尝试传播领域,不知何故它起作用了。

context: {
    workOrder: workOrderTS,
    isCompleted: workOrderTS.isCompleted,
    employeeName: workOrderTS.employeeName,
    statusReason: workOrderTS.statusReason,
    workOrderNumber: workOrderTS.workOrderNumber,
    customerName: workOrderTS.customerName,
    onSiteNotes: workOrderTS.onSiteNotes,
  },
© www.soinside.com 2019 - 2024. All rights reserved.