λμ ν νλ¦Ώμ μ¬μ©νμ¬ μ΄λ©μΌ μ λͺ©μ μΆκ°νλ €κ³ νμ§λ§ μλνμ§ μμ΅λλ€. μ΄λ―Έ μλ €μ§ λ²κ·Έμ λκΉ? μ΄ λ¬Έμ μ λν ν΄κ²° λ°©λ²μ μ μ ν μ μμ΅λκΉ?
ν νλ¦Ώ μ½λ :
<html>
<head>
<title></title>
</head>
<body>
<p> Hello <span>{{test_name}}!</span></p>
</body>
</html>
λ©μΌ 보λ΄κΈ° κΈ°λ₯ :
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(settings.sendgrid.api_key);
sgMail.setSubstitutionWrappers('{{', '}}');
const msg = {
to: '[email protected]',
from: settings.sendgrid.from,
subject: 'Test Subject',
templateId: settings.sendgrid.template_id,
dynamic_template_data: {
test_name: 'Testing Name'
},
};
sgMail.send(msg);
# 834μ λμΌ
@ 10kc-zack μκ² μ΅λλ€. μ΄κ²μ μλ €μ§ λ¬Έμ μ λλ€.
κ·Έλ°λ°μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ΄λ€ μ‘°μΉλ₯Ό μ·¨νμ΅λκΉ?
@ nyel-dev SendGrid μΉ μ¬μ΄νΈμμ ν νλ¦Ώμ μ£Όμ λ₯Ό μ€μ νλ©΄ μλν©λλ€. λ¬Έμ λ SendGridμ APIκ° λμ ν νλ¦Ώμ νΈλ¦¬κ±° ν λ ν νλ¦Ώμ μ 곡νλλ‘ νμ©νμ§ μλ κ² κ°μ΅λλ€.
μλ νμΈμ @ nyel-dev,
κ±°λ ν
νλ¦Ώμμλ μ£Όμ λ₯Ό {{subject}}λ‘ μ€μ ν λ€μ μ½λμμ data.subject
μ "[TEST] My Email Subject"
.
κ·Έκ² λΉμ μκ² ν¨κ³Όκ° μμ΅λκΉ?
λ§μμ λ΄μ,
Elmer
μλ νμΈμ @thinkingserious , μΆκ°μ μΈ ν΅μ°°λ ₯μ΄ μκΈ°λ₯Ό λ°λλλ€.
λ κ±°μ ν
νλ¦Ώμμ νΈλμμ
ν
νλ¦ΏμΌλ‘ μ ν μ€μ΄λ©° νΈλμμ
ν
νλ¦Ώ μ λͺ© νλλ₯Ό {{subject}}
λ‘ λ°κΎΌ νμλ λμΌν λ¬Έμ (sendgrid-nodejs v6.3.1, Node : v8.11.4)κ° λ°μν©λλ€. setSubstitutionWrappers()
λ₯Ό ν΅ν΄ λ체 λνΌλ₯Ό λͺ
μ μ μΌλ‘ μ€μ νμ§ μμκ³ κΈ°λ³Έ νΈλ€ λ° μΈνΈλ‘ λμκ°μ΅λλ€ (ν
μ€νΈ μ€μ μ€μ μ μλνμ§λ§).
첫 λ²μ§Έ ν
μ€νΈ μΌμ΄μ€μμλ msg.dynamic_template_data.subject
subject
μμ± (λ°μ΄ν λλ νΉμ λ¬Έμ μμ)μ msg.subject
λ‘, λ λ²μ§Έ ν
μ€νΈ μΌμ΄μ€μμλ msg.dynamic_template_data.subject
λ‘ μ λ¬νκ³ μΈ λ²μ§Έ ν
μ€νΈ μΌμ΄μ€μ λν΄ μ€μ νμ§λ§ μμ λ κ²°κ³Ό μ΄λ©μΌμλ μμλλ‘ μ λͺ©μ΄ λ°λμ§ μμμ΅λλ€. μ΄λ©μΌ μ λͺ©μλ "(μ λͺ© μμ)"μ΄ νμλ©λλ€.
미리보기 λͺ¨λμμ sendgrid μ¬μ΄νΈμμ ν νλ¦Ώ μ체λ₯Ό ν μ€νΈνκ³ ν μ€νΈ λ°μ΄ν°λ₯Ό μ€μ νλ©΄ μμλλ‘ ν μ€νΈκ° λ체λ©λλ€.
μ΄λ€ λμμ μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€. κ°μ¬!
* νΈμ§νλ€ *
λν λ©μμ§ λ³Έλ¬Έμ λ체λ μ λͺ© μ€μ΄ μλλΌ μμλλ‘ λ체λλ€λ μ λ μΈκΈν΄μΌν©λλ€.
μλ νμΈμ @jlouie ,
μ¬κΈ°μ μμ ν μκ° μμ΅λλ€. λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
λ§μμ λ΄μ,
Elmer
@thinkingserious μ λͺ©μ΄ μμ λμΌν μ΄λ©μΌμ νμλμ§ μμ΅λλ€.
to: "[email protected]",
from: "[email protected]",
subject: "Hello world",
text: "Hello plain world!",
html: "<p>Hello HTML world!</p>",
templateId: "d-xxxx",
dynamic_template_data: {
subject: "Testing Templates & Stuff",
name: 'Some "Testing" One',
city: "<b>Denver<b>"
}
μλ νμΈμ @jlouie ,
μ¬κΈ°μ μμ ν μκ° μμ΅λλ€. λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
λ§μμ λ΄μ,
Elmer
@thinkingserious : λΆννλ κ·Έλ μ§ μμ΅λλ€. @nicholasessμ λ§μ°¬κ°μ§λ‘ μ μ‘ / μμ λ μ΄λ©μΌμ μ¬μ ν λλ½ λ μ λͺ© μ€μ΄ νμλ©λλ€.
μλ νμΈμ @jlouie ,
μ λͺ© μμμ΄ UIμμ λ€μκ³Ό κ°μ΄ 보μ λκΉ?
λ§μμ λ΄μ,
Elmer
κ·Έλ°λ° Sendgrid ν νλ¦Ώ μΈν°νμ΄μ€μμ Set Subjectλ₯Ό μ¬μ©νμ¬μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μμμμ΅λλ€. κ°μ¬ν©λλ€ @thinkingserious
μ€μ μ μ½λ, ν
μ€νΈ λ°μ΄ν°μ κ°μ λ©λ΄λ‘ λ³κ²½νλ κ²μ΄ μ’μ΅λλ€.
μ€μ μ΄μλ κ³³μ μ¨κ²¨μ Έ μμ΅λλ€.
@nicholasess νΌλλ°±μ κ°μ¬λ립λλ€! λμμΈ νμ μ λ¬νκ² μ΅λλ€.
κ°μ λ¬Έμ κ° λ°μνμ¬μ΄ ν΄κ²° λ°©λ²μ μμ‘΄ν΄μΌνμ§λ§ λ¬Έμ λ₯Ό μ΄ν΄ λ³΄μ§ μκ³ λ μλνμ§ μμμ κ²μ λλ€.
λ¬Έμκ° API νΈμΆμμ μ λͺ©μ μ€μ νλ€κ³ λ§νλ―μ΄ μ΄κ²μ λ§€μ° μ§κ΄μ μ΄μ§ μμ΅λλ€ (κ·Έλ¦¬κ³ λ©μμ§μ λν΄ μ 체μ μΌλ‘ μ λͺ©μ μ€μ νκ³ κ°μΈνμμ μ¬μ μ ν μμλ λ°©λ²μ μμΈν μ€λͺ ν©λλ€.μ΄ ν΄κ²° λ°©λ²μΌλ‘λ λΆλͺ ν μμ€λ©λλ€).
λν "API νΈμΆμμ μ¬μ μ ν μ μλ κ΄λ¦¬μ νμ΄μ§μ μ€μ λ κΈ°λ³Έ μ λͺ©"κΈ°λ₯λ μμ€λ©λλ€. μλμ, ν΄κ²° λ°©λ²μΌλ‘ μν₯μλ°λ ν νλ¦Ώμ λν μ λͺ©μ νμ μ§μ ν΄μΌν©λλ€.
({{}} 보κ°μμ κΈ°λ³Έκ°μ μ€μ νλ λ°©λ²μ΄μλ ν. λ¬Έμλ₯Ό νμΈν΄ λ³΄κ² μ΅λλ€. μ§κΈκΉμ§ μ°Ύμ λ΄μ©μ λμλ₯Ό μ¬μ©ν λ³΄κ° λ°©λ²μ κ΄ν κ²μΈλ°, μμ ν μ΅μνμ§ μμ΅λλ€.)
μλ νμΈμ.
μ΄ λ¬Έμ κ° μ’ κ²° λ μ΄μ λ 무μμ λκΉ? κ³ μ λμ΄ μμ§ μμ΅λλ€.
μ΄μνκ² λ³΄μΌ μλ μμ§λ§ μ¬λλ€μ λμΌν νλ©΄μΌλ‘ μ°½μ΄λ νμ μ΄μ§ μμλμ§ νμΈν©λλ€. Sendgrid UIμλ μ΄μ μ μ μ₯ ν λͺ¨λ λ°μ΄ν°λ₯Ό λ€μ μΈ μμλ μλ μ μ₯ κΈ°λ₯μ΄ μμ΅λλ€.
μ£Όμ {{subject}}μμ μ¬μ©
λ€λ₯Έ λ³μμ λ§μ°¬κ°μ§λ‘ λ³μλ‘ λ³΄λ΄μμμ€.
μ΄λ° μμΌλ‘ μλν©λλ€.
λλ λ¬Έμλ₯Ό λ°λ₯΄κ³ λ΄κ° λκ° μλͺ»νλ€κ³ μκ°νκΈ° λλ¬Έμμ΄ λ¬Έμ μ λ무 μ€λ λΆμ΄μμμ΅λλ€. λ κ±°μ ν νλ¦Ώμμ λ§μ΄κ·Έλ μ΄μ νκΈ° λλ¬Έμ APIκ° λμΌνκ² μ μ§ λ κ²μ΄λΌκ³ μκ°νκ³ κ°μκΈ° μμλλ‘ μλνμ§ μλ κ²μλ³΄κ³ λλμ΅λλ€.
μ΄ λ³κ²½ μ¬νμ μ¬λ°λ₯΄κ² λ°μνκΈ° μν΄ λ¬Έμλ₯Ό v3/mail/send
λ‘ μ
λ°μ΄νΈ ν κ³νμ΄ μμ΅λκΉ?
μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μμλ μ μΌν λ°©λ²μ _triple-stash_λ₯Ό μ¬μ©νλ κ²μ λλ€.
{{{ subject }}}
μ΄ κΈ°μ¬μ λ°λ₯΄λ©΄ https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md
μ λͺ© νλμ μ΄μ€ μ€κ΄νΈ λμ νΈλ¦¬νμ μ¬μ©νμ¬ νμΈν μ μμ
μ λͺ© μ€μ νΈλ¦¬ν κ³±μ¬ λλ λ€λ₯Έ μ½λλ₯Ό μ μ₯ν λλ§λ€ μ½λλ λͺ λΆ νμ μλμΌλ‘ νμ€ <% subject %>λ‘ λλμκ°λλ€.
λ€λ₯Έ μ¬λλ κ°μ λ¬Έμ κ° μμ΅λκΉ?
λ€λ₯Έ μ¬λλ κ°μ λ¬Έμ κ° μμ΅λκΉ?
λλ λ κ°μ μ°½λ¬Έμ μ΄μμ λ μ΄μ κ°μ κ²μ 보μλ€. SendGridλ μλ μ μ₯λλ―λ‘ λ κ°μ μ°½μ΄ μ΄λ € μμΌλ©΄ μλ‘ μ·¨μλ©λλ€.
λλ₯Ό μν΄ μΌν λ°©μ :
SendGrid UIμ μ λͺ© νλμμ μ¬μ© : {{{subject}}}
λ³΄λ΄ "subject": "test"
μμ message.dynamic_template_data
μ μ : μ¬λ¬λΆμ μ λ§λ‘ λ¬Έμ μμ μν΄μΌν©λλ€. μ λ§μ κ·Έλ€μ΄ λ무 ν©μ΄μ Έ μκ³ μ‘°κ°λ€μ΄ ꡬμμ΄λΌλ κ²μ μλ―Έν©λλ€.
νΈλ¦¬ν κ΄νΈλ μ¬μ ν μλνκ³ μμΌλ©° μ΄κ²μ΄ μ¬μ ν 곡μμ μΈ ν΄κ²°μ± μΈμ§ νμΈνλ μ€μ λλ€.
κ°μ¬!
@tcukanoot μ.
λ€μ μ΄μ΄μ£ΌμΈμ! μμ²μ μ΅μμ λ 벨μ subject
μ μ€μ νλλ‘ μ μνλ λ¬Έμκ° μ¬μ ν μ¬λ°λ₯΄μ§ μμ΅λλ€. κ·Έλ¬λ dynamic_template_data
ν¬ν¨λμ΄μΌνλ©° ν
νλ¦Ώμ μ λͺ©μ {{subject}}
λλ κΈ°ν λμ ν€λ‘ μ€μ λμ΄μΌν©λλ€. μ΄κ²μ 2018 λ
λΆν° μ΄λ € μμΌλ©° μ΄νμ λμ
λ λ¬Έμμ λ³κ²½ μ¬νμ΄ μμ΅λλ€!
λ체 λλ dynamic_template_dataλ₯Ό μ¬μ©νλ €κ³ ν λ μλ²μμ 400 μμ² μ€λ₯κ° λ°μν©λλ€.
λ¬Έμλ₯Ό μμ νμΈμ. dynamic_template_dateλ https://github.com/sendgrid/sendgrid-python/blob/main/use_cases/kitchen_sink.md λ° v3 λ¬Έμλ₯Ό κΈ°λ°μΌλ‘ μ ν¨νμ§ μμμΌν©λλ€.
κ·Έλ¬λ μ¬λλ€μ κ·Έκ²μ΄ κ·Έλ€μκ² ν¨κ³Όκ° μλ€κ³ λ³΄κ³ νκ³ μμ΅λλ€.
λ¬΄μ¨ μΌμ΄μΌ? π€
λλ₯Ό μν΄ μΌν λ°©μ :
SendGrid UIμ μ λͺ© νλμμ μ¬μ© :
{{{subject}}}
보λ΄
"subject": "test"
μμmessage.dynamic_template_data
μ μ : μ¬λ¬λΆμ μ λ§λ‘ λ¬Έμ μμ μν΄μΌν©λλ€. μ λ§μ κ·Έλ€μ΄ λ무 ν©μ΄μ Έ μκ³ μ‘°κ°λ€μ΄ ꡬμμ΄λΌλ κ²μ μλ―Έν©λλ€.
PHPμμ μννλ λ°©λ². μ½λλ₯Ό 곡μ ν΄μ£ΌμΈμ!
μ λͺ©μ΄ μ΅μμ λ§€κ° λ³μλ‘ μ μ‘λλλ‘ μ μνλ λ¬Έμκ° νμ¬ μλͺ»λ κ²μ λκΉ?
λλ₯Ό μν΄ μΌν λ°©μ :
SendGrid UIμ μ λͺ© νλμμ μ¬μ© :
{{{subject}}}
보λ΄
"subject": "test"
μμmessage.dynamic_template_data
μ μ : μ¬λ¬λΆμ μ λ§λ‘ λ¬Έμ μμ μν΄μΌν©λλ€. μ λ§μ κ·Έλ€μ΄ λ무 ν©μ΄μ Έ μκ³ μ‘°κ°λ€μ΄ ꡬμμ΄λΌλ κ²μ μλ―Έν©λλ€.
μ΄κ²μ λλ₯Ό μν΄ μΌνμ΅λλ€! λ¬Έμλ λ€μκ³Ό κ°μμΌν©λλ€.
const msg = {
to: toEmail,
from: "email",
templateId: "tempateId",
dynamic_template_data: {
subject: "subjectHere",
},
};
sendGridEmail
.send(msg)
.then(() => console.log("email sent"))
.catch((error) => console.error(error.toString()))
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ @jlouie ,
μ λͺ© μμμ΄ UIμμ λ€μκ³Ό κ°μ΄ 보μ λκΉ?
λ§μμ λ΄μ,
Elmer