2018λ 7μ 24μΌμ μ°λ¦¬ νμ νΈλμμ ν νλ¦Ώμ μν λμ μ½ν μΈ λ₯Ό 곡κ°μ μΌλ‘ μΆμνμ΅λλ€. μ΄μ λ©μΌ 보λ΄κΈ° API v3λ₯Ό ν΅ν΄ 보λ΄λ λͺ¨λ κ³ κ°μ΄ μ¬μ©ν μ μμ΅λλ€. Handlebars ꡬ문μ νμ μ§ν©μ λν κΈ°λ³Έ μ§μ λλΆμ λͺ©λ‘μ λ°λ³΅νκ³ μ‘°κ±΄λ¬Έ λ±μ μ²λ¦¬ν μ μμ΅λλ€!
μμΈν λ΄μ©μ λΈλ‘κ·Έ κ²μλ¬Ό κ³΅μ§ μμ νμΈν μ μμ΅λλ€.
νμ¬ μ¬κΈ°μ νμλ λλ‘ μμ² λ³Έλ¬Έμ μλμΌλ‘ μμ±νμ¬ μ΄ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.
μ΄μ μ΄ SDKμ λν λμ°λ―Έ μ½λ( μλ£λ¨ )μ μμ λ₯Ό λ§λ€μ΄μΌ ν©λλ€.
λ¬Έμλ₯Ό μ λ°μ΄νΈνμμμ€. λμ²΄κ° v3 APIμμ μλνμ§ μλ μ΄μ λ₯Ό νμ νλ λ° ν μκ°μ 보λμ΅λλ€.
@jharris-codeμ ννΈμλ κ²½νμ λν΄ μ¬κ³Όλ립λλ€.
μ°μ μμλ₯Ό μ»μ μ μλλ‘ μ΄ λ¬Έμ μ κ·νμ ν¬νλ₯Ό μΆκ°νμ΅λλ€. μ°λ¦¬ μμ PR #711μ΄ μκΈ° λλ¬Έμ 곧 μ λ°μ΄νΈ λ κ² κ°μ΅λλ€.
λ¬Έμμ λΆμ¬κ° μ€μ μ½λμ 릴리μ€λ₯Ό μ°¨λ¨νλ€λ κ²μ λ§€μ° μ΄λ¦¬μμ μΌμ λλ€.
μλ νμΈμ @catamphetamine μ λλ€ .
μ½λλ v6.3.1 μμ 릴리μ€λμμ΅λλ€. λμμ΄ λμκΈ°λ₯Ό λ°λλλ€. κ°μ¬ν©λλ€!
λ§μμ λ΄μ,
μλ¨Έ
@thinkingserious μ€,
λλ κ·Έκ²μ μλ ν κ²μ
λλ€, thx.
μ¬μ©μ μ°Έκ³ : μ¬μ©νλ ν
νλ¦Ώμ ν΅κ³Ό dynamic_template_data
λμ substitutions
.
μ΄μ "substitutions:"λ₯Ό "dynamic_template_data:"λ‘ λ³κ²½ν΄μΌ ν©λλ€.
κ·Έλ¦¬κ³ ν νλ¦Ώμ νΈλ€λ°λ₯Ό μ¬μ©νμ¬ λ μ΄μ "substitutionWrappers"λ₯Ό μ§μ ν νμκ° μμ΅λλ€.
μ¬μ© μ¬λ‘μ μ΄ μλ μ¬μ ν dynamic_template_dataκ° μλ λ체λ₯Ό μ¬μ©ν©λλ€. Plz μ
λ°μ΄νΈ, μ΄ μ€λ λλ₯Ό μ°ΎκΈ° μ μ SDKλ₯Ό μ¬μ©νκ³ κ²μνλ λ° λͺ μκ°μ΄ κ±Έλ Έμ΅λλ€. (λν κ·νμ API λ¬Έμ λ μ΄κ²μ λν΄ μ무 κ²λ μΈκΈνμ§ μμ λμμ΄ λμ§ μμμ΅λλ€.
λν replacementWrappersλ dynamic_template_dataμ μ ν μλνμ§ μλ κ² κ°μ΅λλ€. λ΄ λ©μμ§ κ°μ²΄μ substitutionWrappers: ['*|', '|*']
ν€ κ° μμ ν¬ν¨νλλΌλ μ€κ΄νΈλ‘ λ¬ΆμΈ ν
νλ¦Ώ λ³μλ§ μ±μμ‘μ΅λλ€. (μ΄μ μλμ μΌλ‘ λͺ¨λ μ¬λμ΄ ν
νλ¦Ώμ νΈλ€λ° ꡬ문μ μ¬μ©νλλ‘ κ°μνλ 건κ°μ?)
@josh-yonomi μ£μ‘ν©λλ€.
κ·νμ νΌλλ°±μ κΈ°λ°μΌλ‘ λ¬Έμλ₯Ό μ λ°μ΄νΈνμ΅λλ€.
μ ν νλ¦Ώμ κ²½μ° νΈλ€λ° ꡬ문μ μ¬μ©ν©λλ€. λ κ±°μ ν νλ¦Ώμ μ¬μ ν ββμ΄μ κ³Ό κ°μ΄ μλν©λλ€.
λ§μμ λ΄μ,
μλ¨Έ
μ΄λ©μΌμ λ°μμ§λ§ λμ²΄κ° μλνμ§ μμ΅λλ€. 무μμ΄ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμ΅λκΉ?
const msg = {
to: email,
from: sendGridMail,
templateId: emailTemplate.confirmationEmail,
dynamic_template_data: {
firstName: firstName,
lastName: lastName,
link: link
}
};
@thinkingseriousλ₯Ό ν΅ν΄ νΈμ§
λ¬Έμ κ° μ΄λμ μλμ§ μλ €μ£Όμκ² μ΅λκΉ? κ°μ ν μ μλλ‘ λΆλ§ μ¬νμ μ΄ν΄νκ³ μΆμ΅λλ€.
@drav96 ,
ν νλ¦Ώμ΄ μ΄λ»κ² μκ²Όλμ§ κ³΅μ νμκ² μ΅λκΉ?
λ§μμ λ΄μ,
μλ¨Έ
μ λ체 λνΌμμ νΉμ λ¬Έμλ₯Ό μ κ±°ν©λκΉ ??
dynamic_template_data: {
'foo-bar': 'wtf',
'bar_baz': 'wtf',
'baz.bro': 'wtf',
'foo': 'wtf'
}
{{foo}}
μ΄λ©μΌμμ wtf
λ¬Έμμ΄μ λ°νν©λλ€.
@larafale μ νμ€νμ§ μμ§λ§ νμ€ν ν©λ¦¬μ μ΄μ§ μμ κ² κ°μ΅λλ€. μ΄ SDKμ μμ€ μ½λλ₯Ό 보면 ν΄λΉ ν€κ° μμ λλ μμΉκ° νμλμ§ μμ΅λλ€.
μ΄ λ¬Έμ μ λν΄ λ³λμ λ¬Έμ λ₯Ό λ§λ€κ³ HTML ν νλ¦Ώμ λͺ¨μμ ν¬ν¨νμκ² μ΅λκΉ? μλ‘μ΄ λ¬Έμ λ₯Ό λ²κ·Έλ‘ νμνκ³ νμν κ²½μ° μ¬ν λ° μμ νλλ‘ λ Έλ ₯νκ² μ΅λλ€.
μλ νμλκΉ,
κ·Έλμ λμ ν
νλ¦Ώ μ΄λ©μΌμ 보λ΄λ €κ³ νμ§λ§ λ체 λλ dynamic_template_data
μ μ¬μ©ν μ μμ΅λλ€.
λ΄ ν
νλ¦Ώμλ {{fullname}}
λλ {{date}}
μ κ°μ νκ·Έκ° μμΌλ©° μ΄λ¬ν μμ±μ send
ν¨μλ‘ μ μ‘λ©λλ€.
const msg = {
to,
from,
templateId: template.id,
dynamic_template_data: substitutions,
};
return sgMail.send(msg)
substitutions
κ°μ²΄μ μ¬λ°λ₯Έ κ°μ΄ μλ μ¬λ°λ₯Έ μμ±μ΄ μμ§λ§ λμ²΄κ° μλνμ§ μλ κ²μ νμΈνμ΅λλ€.
λ΄κ° λ μλͺ»νκ³ μλμ§ μκ² μ΄?
κ°μ¬ ν΄μ.
@gianfelipe93
κ΅¬μ‘°κ° λ§μ΅λλ€. λλ κ°μ λ¬Έμ κ° μμλ€.
λ΄ μ루μ
μ λ΄ νλ‘μ νΈμμ @sendgrid ν¨ν€μ§λ₯Ό μ κ±°νκ³ λ€μ μ€μΉνλ κ²μ΄ μμ΅λλ€.
κ·Έκ²μ΄ λΉμ μ μν΄ μλνλμ§ μλ €μ£Όμμμ€
const msg= {
to: email,
from: sendGridMail,
templateId: emailTemplate.requestDemoEmail,
dynamic_template_data: {
name: data.name,
email: data.email,
}
};
@drav96 κ³ λ§μ μΉκ΅¬, μ§κΈ μλ μ€μ λλ€.
μ΄κ²μ λ ν μκ°μ νλΉν νμ λ΄κ° λ°λΌλ κ²μ μΆκ°νλ κ²μ νμ€ν λ¬Έμ κ° λ κ²μ λλ€. (λ¨Όμ λλ³΄λ€ λ¨Όμ μκ°μ νλΉν λͺ¨λ μ΄λ€μκ² κ°μ¬νλ€.)
d-
λ‘ μμνλ©΄ substitutions
μ΄ μλνμ§ μμΌλ©° CAMEL-CASE dynamicTemplateData
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€( μ¬κΈ° μ°Έμ‘°, d-
λ‘ μμνλ©΄ setSubstitutionWrappers
λ μλμΌλ‘ 무μλλ©° ν
νλ¦Ώμμ {{
λ° }}
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.μ΄κ²μ λ ν μκ°μ νλΉν νμ λ΄κ° λ°λΌλ κ²μ μΆκ°νλ κ²μ νμ€ν λ¬Έμ κ° λ κ²μ λλ€. (λ¨Όμ λλ³΄λ€ λ¨Όμ μκ°μ νλΉν λͺ¨λ μ΄λ€μκ² κ°μ¬νλ€.)
- ν νλ¦Ώ IDκ°
d-
λ‘ μμνλ©΄substitutions
μ΄ μλνμ§ μμΌλ©° CAMEL-CASEdynamicTemplateData
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€( μ¬κΈ° μ°Έμ‘°,- ν νλ¦Ώμ΄
d-
λ‘ μμνλ©΄setSubstitutionWrappers
λ μλμΌλ‘ 무μλλ©° ν νλ¦Ώμμ{{
λ°}}
λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
μ κ²½μ°μλ ν
νλ¦Ώ IDμ d-
κ° μλλΌλ dynamic_template_data
μ ν¨κ» μλν©λλ€.
μ, μ€λ€μ΄ν¬ μΌμ΄μ€ ν€μ ν¨κ» μλνμ§λ§ κ°λ°μκ° λ΄λΆμ μΌλ‘ λν μΌμ΄μ€μ 컀λ°ν κ²μ²λΌ 보μ λλ€(μ λ³΄κ³ μμμ λ§ν¬ν μ€ μ°Έμ‘°). λ°λΌμ λͺ¨λ μ μ½λμλ λν μΌμ΄μ€λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μλ νμΈμ @kael-shipman
μκ°μ λ΄μ΄ λμμ£Όμ μ κ°μ¬ν©λλ€. κ°μ¬ν©λλ€!
μ΄ λ¬Έμλ₯Ό λ³Έ μ μ΄ μμ΅λκΉ? κ·Έλ μ§ μλ€λ©΄ ν μκ°μ λλΉνκ² λ§λ λ°κ²¬ κ²½λ‘λ₯Ό μ€λͺ ν΄ μ£Όμκ² μ΅λκΉ? λ€μλ κ·Έλ° μΌμ΄ μΌμ΄λμ§ μμμΌλ©΄ νκ³ μ’μ§ μμ κ²½νμ λν΄ μ¬κ³Όλ립λλ€.
λ§μμ λ΄μ,
μλ¨Έ
@thinkingserious ,
μ΄μ¨λ λ¬Έμ λ μ¬λ°λ₯Έ(ish) λ¬Έμκ° μ΄λκ°μ μ‘΄μ¬νλ€λ κ²μ΄ μλλΌ λ§μ μ€λλ λ¬Έμκ° μ¬μ ν Google κ²μμ λ°λΌμ‘ν μλ€λ κ²μ
λλ€. "sendgrid ν
νλ¦Ώ νλ"(λ°©κΈ)λ₯Ό κ²μνλλ° κ΄κ³ κ° μλ 첫 λ²μ§Έ κ²°κ³Όλ this μ
λλ€ . λͺ¨λ νμμ λ°λ₯΄λ©΄ 곡μ λ¬Έμμ΄μ§λ§ λΆλͺ
ν μ€λλ κ²μ
λλ€. λΏλ§ μλλΌ λ κ°μ§ λ€λ₯Έ λ체 νμ( -firstName-
λ° %firstName%
)μ΄ μμΌλ©° "μ¬μ©νλ SDK λΌμ΄λΈλ¬λ¦¬μ λ°λΌ λ€λ₯Ό μ μμ΅λλ€"λ§ νμλ©λλ€. λͺ¨λ SDK λΌμ΄λΈλ¬λ¦¬λ μλ§λ λμΌν λ¨μΌ μ¬μ(νλμ λ체 νκ·Έ μ€νμΌλ§ μμ)μ κ°λ¦¬ν¬ κ²μ
λλ€.
sendgridμ λν λ΄ κ²½νμ λ°λ₯΄λ©΄ ꡬμΆλ μ¬νμ ν¬κ² κ°μ¬νμ§λ§ μ΄ λ¬Έμ νΌλμ μ€μ λ‘ μμΈκ° μλλΌ κ·μΉμ λλ€. λ€λ₯Έ μννΈμ¨μ΄ μΈκ³λ§νΌ μμΌλ‘ λμκ°κ³ μλ€λ κ²μ μλλ€. κ·Έλ¬λ λͺ¨λ λ¬Έμλ₯Ό μ κ·ννκ³ λ²μ λ²νΈλ₯Ό μ§μ νλ λ±μ μμ μ μννλ λ° ν λ¬ μ λκ° μμλ κ²μ λλ€. μμ Google μ‘°νμ
μ΄μ¨λ , λ€μ ν λ² κ°μ¬ν©λλ€!
λν λ§ν¬ν λ¬Έμμλ μ¬μ ν λ±μ κ²½μ° dynamic_template_data
λμ΄ μμΌλ©°, κ·Έκ²μ΄ λ§λ€λ©΄ μ½λ μμ²΄κ° μ κ·Έκ²μ camelCaseλ‘ λ³ννλ κ²μ²λΌ 보μ΄λμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μμμ μΈκΈνλ―μ΄ λ± μΌμ΄μ€κ° μλνλ€λ κ²μ μκ³ μμ§λ§ μ½λκ° μ£Όμ΄μ§λ©΄ λ¬Έμμμ μ¬μ©μ κΆμ₯νμ§ μλ κ² κ°μ΅λλ€.
μλ νμΈμ @kael-shipman
μκ°μ λ΄μ΄ μμΈν νΌλλ°±μ μ κ³΅ν΄ μ£Όμ μ κ°μ¬ν©λλ€!
κ·νκ° μ 곡ν λ§ν¬μ κ΄λ ¨νμ¬ ν΄λΉ λ¬Έμλ μ΄ SDKκ° μ§μνλ SendGrid v3 REST APIκ° μλλΌ SendGrid SMTP APIλ₯Ό μ°Έμ‘°ν©λλ€. μ¦, λΉμ μ κ·Έκ²μ μ κ²μΌλ‘ κΈ°λν΄μλ μλ©λλ€. μ΄ λ¬Έμ λ₯Ό λ¬Έμ νμ μ λ¬νμ¬ λͺ ννκ² ν μ μλ λ°©λ²μ΄ μλμ§ νμΈνκ² μ΅λλ€.
μ°λ¦¬λ μ΅κ·Όμ μ€ν μμ€ λ¬Έμλ₯Ό μ λ°μ΄νΈνκ³
μΌκ΄μ±μ μν΄ camelCaseλ₯Ό μ¬μ©νλλ‘ READMEλ₯Ό μμ νκ² μ΅λλ€. κ·Έκ²μ ν¬μ°©νκ³ μ°λ¦¬μ κ΄μ¬μ κ°μ Έ μ£Όμ μ κ°μ¬ν©λλ€!
λ€μ ν λ² κ°μ¬ λ리며 μμΈν νΌλλ°±μ λν κ°μ¬μ νμλ‘ κ·νμκ² μ½κ°μ μ₯μ μ μ 곡νκ³ μΆμ΅λλ€. μ¦κΈ°λ€!
λ§μμ λ΄μ,
μλ¨Έ
μλ νμΈμ, κ°μ¬ν©λλ€ :D
2018λ
9μ 18μΌ νμμΌ μ€ν 6:09 Elmer Thomas μλ¦Ό @github.com
μΌλ€:
μλ νμΈμ @kael-shipman https://github.com/kael-shipman ,
μκ°μ λ΄μ΄ μμΈν νΌλλ°±μ μ κ³΅ν΄ μ£Όμ μ κ°μ¬ν©λλ€!
κ·νκ° μ 곡ν λ§ν¬μ κ΄λ ¨νμ¬ ν΄λΉ λ¬Έμλ
μ΄ SDKμμ μ¬μ©νλ SendGrid v3 REST APIκ° μλ SendGrid SMTP APIλ‘
μ§μν©λλ€. μ¦, λΉμ μ κ·Έκ²μ μ κ²μΌλ‘ κΈ°λν΄μλ μλ©λλ€. λ΄κ° κ°μ Έμ¬ κ²
μ΄ λ¬Έμ λ₯Ό λ¬Έμ νμμ νμΈνμ¬
λͺ νν νλ λ°©λ².μ°λ¦¬λ μ΅κ·Όμ μ€ν μμ€ λ¬Έμλ₯Ό μ λ°μ΄νΈνκ³ λ€μ μμνμ΅λλ€.
https://sendgrid.com/blog/how-to-get-the-most-from-sendgrids-new-knowledge-center/ .
λ μ½κ² νμν μ μκΈ°λ₯Ό λ°λλλ€.μΌκ΄μ±μ μν΄ camelCaseλ₯Ό μ¬μ©νλλ‘ READMEλ₯Ό μμ νκ² μ΅λλ€. μ κ°μ¬νλ€
κ·Έκ²μ ν¬μ°©νκ³ μ°λ¦¬μ μ£Όμλ₯Ό λκ³ μμ΅λλ€!λ€μ ν λ² κ°μ¬λ리며 μμΈν λ΄μ©μ λν κ°μ¬μ νμλ‘
νΌλλ°±, μ°λ¦¬λ λΉμ μκ² μ½κ°μ μ₯μμ μ 곡νκ³ μΆμ΅λλ€
https://dx.sendgrid.com/swag . μ¦κΈ°λ€!λ§μμ λ΄μ,
μλ¨Έ
β
λΉμ μ΄ μΈκΈλμκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈ
https://github.com/sendgrid/sendgrid-nodejs/issues/703#issuecomment-422588492 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/ADUIglZIH2d7imy-H7dekTo5A-v2Xau8ks5ucX0agaJpZM4Vev8b
.
μΌλ° μ΄λ©μΌ λ³μμ λν΄ dynamic_template_data
μ μ¬μ©ν μ μμ§λ§ μμ μλ³λ‘ λμ λ°μ΄ν°λ μΆκ°ν΄μΌ νλ κ²½μ°μλ μ΄λ»κ² ν΄μΌ ν©λκΉ? μ: μ£Όλ¬Έ λ²νΈ, μ£Όλ¬Έ μλ λ±. λ¬Έμμμ μ΄μ λν μ¬μ© μ¬λ‘λ₯Ό λ³Ό μλ μμ§λ§ κ°κ³Όνκ³ μμ μ μμ΅λλ€.
μ¬μ©μ μ°Έκ³ : μ¬μ©νλ ν νλ¦Ώμ ν΅κ³Ό
dynamic_template_data
λμsubstitutions
.
@catamphetamine λΆννλ λͺ¨λ μ¬λμ μ½λκ° dynamicTemplateData
λ‘ μλνλ κ²μ²λΌ 보μ΄λ μ΄μ λ₯Ό νμ
νλ λ° λ무 λ§μ μκ°μ 보λκΈ° λλ¬Έμ κ·νμ μ견μ λ°λνμ΅λλ€. κ·Έλ¬λ μ κ²½μ°μλ λμ²΄κ° λ¨μν μ κ±°λμμ΅λλ€. λ€λ₯Έ μ¬λλ€μ΄ λ λμ κ²½νμ νκΈ°λ₯Ό λ°λ λΏμ
λλ€.
λ΄ λ²μ :
"@sendgrid/mail": "^6.3.1"
λλ₯Ό μν΄ λλ λ€μμ μνν΄μΌνμ΅λλ€ (μ¬λλ€μ΄ λ§νλ κ²κ³Ό λ°λ).
// This seems to be the default, however, to avoid unexpected API changes,
// I'd rather set this manually
setSubstitutionWrappers("{{", "}}");
{
subject: EMAIL_SUBJECT_ONBOARDING,
templateId: "templateId",
personalizations: [{
to,
// NOT WORKING WITH THIS β
// dynamicTemplateData: {
// senderName: EMAIL_FROM_NAME,
// senderAddress: "an actual adress",
// },
// WORKS WITH THIS β
substitutions: {
senderName: EMAIL_FROM_NAME,
senderAddress: "an actual adress",
},
}],
}
@thinkingserious λ λꡬλ₯Ό μ¬λν©λλ€. λ¬Έμ, μ»€λ² μ£μ§ μΌμ΄μ€ λ±μ κ³μ κ°μ ν΄ μ£ΌμΈμ. πβ€οΈ
@catamphetamine downvote λλΆμ. λ΄κ° setSubstitutionWrappers("{{", "}}");
νκΈ° λλ¬Έμ substitutions
μΌ μ μλ€κ³ μκ°νμ΅λλ€. μμ, μλ. λ¬΄μ¨ μΌμ΄ μμλμ§ λͺ¨λ₯΄κ² μ§λ§ νΌκ³€ν μλ μμ§λ§ dynamicTemplateData
μ μλ ν©λλ€. μ°Έκ³ λ‘ κ·Έκ²μ camelCase _(@kael-shipman μ£Όμ μ°Έμ‘°)_ λλΆλΆμ μμ λ± μ¬λ‘λ₯Ό λ΄
λλ€. λν sendgridμ TS μ νμ μ¬μ©νκ³ μμ΅λλ€. μ μμ μ¬μ© κ°λ₯ν snake_case ν€κ° μμ΅λλ€.
μ¬μ© κ°λ₯ν μ νμ λν΄. PersonalizationJSON
μ νμμ dynamic_template_data
μ μ°Ύμμ΅λλ€. λ€μμ μ¬μ©νλ κ²½μ°:
import { send } from "@sendgrid/mail";
κ·Έλ° λ€μ sendμ λν 첫 λ²μ§Έ 맀κ°λ³μλ₯Ό νμΈν ν λ€μ μ μκ° μλ MailData
λ₯Ό λ³Ό μ μμ΅λλ€.
export interface MailData {
// ...
personalizations?: PersonalizationData[],
// ...
}
κ·Έλ° λ€μ λλ λ€μ 2κ°μ§ μ νμ μ°μ°ν λ°κ²¬νμ΅λλ€.
export interface PersonalizationData {
// omitted keys...
dynamicTemplateData?: { [key: string]: string; };
customArgs?: { [key: string]: string };
sendAt?: number;
}
export interface PersonalizationJSON {
// same omitted keys...
dynamic_template_data?: { [key: string]: string; };
custom_args?: { [key: string]: string; };
send_at?: number;
}
λ§μ§λ§μΌλ‘ λ€μκ³Ό κ°μ΄ μΌκ΄λκ² μλνλλ‘ dynamic_template_data
λ₯Ό μ»μ΅λλ€.
{
templateId: "d-templateId",
dynamic_template_data: { name: "elton yet again"}, // <-- either here
personalizations: [{
to,
dynamic_template_data: { name: "Elton again" }, // <-- or here
}],
}
@thinkingserious λΆλͺ ν μμ ν΄μΌ ν μ ν μ μ λ¬Έμ κ° μμ΅λλ€. λμ€μ PRμ λ§λ€ μ μμ΅λλ€.
μκ² μ΅λλ€. λ€μ μ‘°μ¬ν΄μΌ ν©λλ€. μ΄μ dynamicTemplateData
λ substitutions
λλ₯Ό μν΄ μλνμ§ μκΈ° λλ¬Έμ λλ λ©ν΄μ‘μ΅λλ€.
μ
λ°μ΄νΈ:
μΌλΆ ν
μ΄λΈμ λ€μ§μμ§λ§ μλνκ³ μ΄μ μ견μ μ
λ°μ΄νΈνμ΅λλ€.
λ§μ§λ§μΌλ‘ λ€μκ³Ό κ°μ΄ μΌκ΄λκ² μλνλλ‘
dynamic_template_data
λ₯Ό μ»μ΅λλ€.{ templateId: "d-templateId", dynamic_template_data: { name: "elton yet again"}, // <-- either here personalizations: [{ to, dynamic_template_data: { name: "Elton again" }, // <-- or here }], }
μ΄κ²μ μ μκ² μ€μν ν¬μΈνΈμμ΅λλ€. cc μ΄λ©μΌκ³Ό λ€λ₯Έ κ±°λ ν νλ¦Ώμ μ λͺ©μ μ€μ νλ €κ³ νμ΅λλ€. μμ κ°μ΄ κ°μΈν λ°°μ΄ λ΄λΆμ dynamic_template_data μμ±μ λ£μ λ μλνμ΅λλ€.
const msg = {
personalizations: [
{
to: req.body.to,
dynamic_template_data : {
subject: "Just to adsf...",
full_name_from: req.body.full_name_from,
full_name_to: req.body.full_name_to,
manager: req.body.manager,
message: req.body.message,
badge: req.body.badge,
badge_image: 'https://asdf' + req.body.badge_image
}
},
{
to: req.body.manager,
dynamic_template_data : {
subject: req.body.full_name_from + ' received a asdf asdf',
full_name_from: req.body.full_name_from,
full_name_to: req.body.full_name_to,
manager: req.body.manager,
message: req.body.message,
badge: req.body.badge,
badge_image: 'https://asdf' + req.body.badge_image
}
}
]
};
λλ₯Ό μν΄ μΌν μ루μ μ μλ νμλ μ νν λ°©μμΌλ‘ κ°μΈν κ°μ²΄ λ΄λΆμ dynamic_template_dataλ₯Ό λ°°μΉνλ κ²μ λλ€.
"personalizations": [
{
"dynamic_template_data": {
"fullname": "full Name",
"useremail": ":[email protected]",
"userphone": "56456",
"usermsg": "tex fdsfgasdf t"
},
"to": [
{
"email": "[email protected]"
}
],
"cc": [
{
"email": "[email protected]"
}
]
}
]
κ°μ₯ μ μ©ν λκΈ
λ¬Έμλ₯Ό μ λ°μ΄νΈνμμμ€. λμ²΄κ° v3 APIμμ μλνμ§ μλ μ΄μ λ₯Ό νμ νλ λ° ν μκ°μ 보λμ΅λλ€.