仅当通过 heroku 使用但在本地主机上工作正常时,电子邮件正文中才会丢失数据。
奇怪的是,电子邮件主题中也显示了相同的缺失字段,例如客户名称。
主题工作正常,但正文中缺少数据
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>
我尝试传播领域,不知何故它起作用了。
context: {
workOrder: workOrderTS,
isCompleted: workOrderTS.isCompleted,
employeeName: workOrderTS.employeeName,
statusReason: workOrderTS.statusReason,
workOrderNumber: workOrderTS.workOrderNumber,
customerName: workOrderTS.customerName,
onSiteNotes: workOrderTS.onSiteNotes,
},