2017-11-19 1 views
0

私はSendGridの試用版電子メールを設定しようとしています。これは初めて使用したので、これは簡単ですが、プレースホルダのデータを取得できないようです交換する。sendgridの代替が動作しない

私はこのようなNodeJSライブラリを使用しています:私は、テストを実行したときしかし、

Hello --displayName-- 

We would love to take this opportunity to welcome you to the store. 

from 

--companyName-- 

sgMail.setApiKey(mailConfig.apiKey); 

const msgConfig = { 
    to: email, 
    from: mailConfig.defaults.from, 
    templateId: mailConfig.templates.registrationConfirmation, 
    substitutions: { 
    '--displayName--': original.displayName, 
    '--companyName--': 'Hello world' 
    } 
}; 

console.log('Sending: ', msgConfig); 

// now send the registration confirmation email. 
return sgMail.send(msgConfig).then(() => { 
    console.log('done.'); 
}) 
.catch((err) => { 
    console.error(JSON.stringify(err)); 
}); 

、テンプレートに、私はビジュアルエディタを使用して追加したテキストブロックがあります

電子メールを送信する、それは大丈夫メールを送信しますが、プレースホルダーを代用しません。

私はここで何が欠けていますか?

答えて

-1
const msgConfig = { 
    to: email, 
    from: mailConfig.defaults.from, 
    templateId: mailConfig.templates.registrationConfirmation, 
}; 

msgConfig.addSubstitution('%displayName%', 'Something to display'); 

ユーザー指定した変数が動作しないようですあなたが彼らの周りに角括弧<% ...%>を持っている場合、これらは<%本体%>と<%の件名%>タグ用に予約されています。

だから今、あなたがこのようになりますあなたのテンプレートを作ることができます - %のdisplayName%

1

それはSendgridのマニュアルに明確ではないが、私はそれがこの行が欠落していると思う:

sgMail.setSubstitutionWrappers('--', '--'); // Configure the substitution tag wrappers globally 
置換で

そして除去ダッシュオブジェクトキー

このリンクで0

ルック:Sendgrid

だから、あなたのコードは次のようになります。

sgMail.setApiKey(mailConfig.apiKey); 

// Configure the substitution tag wrappers globally 
sgMail.setSubstitutionWrappers('--', '--'); 

const msgConfig = { 
    to: email, 
    from: mailConfig.defaults.from, 
    templateId: mailConfig.templates.registrationConfirmation, 
    substitutions: { 
    'displayName': original.displayName, 
    'companyName': 'Hello world' 
    } 
}; 
... 

私はこれがあなたの役に立てば幸い!

関連する問題