μλ νμΈμ,
sendgrid nodejs npm ν¨ν€μ§μμ λ¬Έμ κ° λ°μνμ΅λλ€. λ체 λ° ν νλ¦Ώμ΄ ν¬ν¨ λ μ΄λ©μΌμ λ³΄λΌ μ μμ§λ§ λ¬Έμ λ ν΄λΌμ΄μΈνΈ λμ μ΄λ©μΌμ μμ΅λλ€. % name %, % company % λ±. λ체λ κ°μΌλ‘ λ체λμ§ μμ΅λλ€.
μ½λ μ‘°κ°
const sgMail = require ( '@ sendgrid / mail');
sgMail.setApiKey (sendgrid_key);
var msg =
{
"κ°μΈν": [{
"λμ": [{
"email": " [email protected] ",
"name": "μΌλΆ νμ¬"
}],
"λ체": {
"% name %": "John",
"% company %": "μΌλΆ νμ¬",
"% business %": "λΉ λ₯Έ νλ"
},
"subject": "μΌλΆ νμ¬μ λν μ‘μ₯!"
}],
"from": {
"email": "CompanyA [email protected] ",
"μ΄λ¦": "CompanyA"
},
"λ΅μ₯νλ€": {
"email": " [email protected] ",
"name": "κ³ κ° μλΉμ€"
},
"subject": "μΌλΆ νμ¬μ λν μ‘μ₯!",
"template_id": "93f052da-08d4-46f2-8f0c-f2a193bceea0"
};
sgMail
.send (msg)
.then (() => {
console.log ( 'SendGrid :: μ±κ³΅μ μΌλ‘ μ΄λ©μΌμ λ³΄λΈ ν μλ΅!');
})
.catch (μ€λ₯ => {
console.error ( 'Error SendGrid :::'+ error.toString ());
});
μ½λκ° μ€νλκ³ % name %, % business %, % company %λ₯Ό λ체νμ§ μκ³ μ μ λ©μΌμλ°μ΅λλ€.
μ΄μ sengrid μΉ μ¬μ΄νΈ https://sendgrid.com/docs/API_Reference/api_v3.htmlμ μ¬μ©ν΄ 보μμ΅λλ€.
λ¬Έμ μμ΄ μλ²½νκ² μ΄λ©μΌμ 보λ΄κ³ λͺ¨λ λμ²΄κ° μ¬λ°λ₯΄κ² μ΄λ£¨μ΄μ§λλ€.
sgMail.send (msg)μμ κ°μ μ€μ νλ λ° μ¬μ©νλ javascript npm μ½λμμ 무μμ΄ μλͺ» λμμ΅λκΉ?
λμμ μμ²νμμμ€.
λ체 λνΌκ° λλ½ λ κ² κ°μ΅λλ€. μ΄ μ¬μ© μ¬λ‘μμ μ¬μ©ν μμ λ₯Ό κ°λ¨ν ν νλ¦ΏμΌλ‘ μ¬μ©νλλ° μλν©λλ€.
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
sgMail.setSubstitutionWrappers('{{', '}}'); // Configure the substitution tag wrappers globally
const msg = {
to: '[email protected]',
from: '[email protected]',
subject: 'Hello world',
text: 'Notification',
html: '<p></p>',
templateId: 'your-id-goes-here',
substitutions: {
name: 'John'
},
};
sgMail.send(msg);
λ΄ ν νλ¦Ώμ λ€μ μ½λ μ‘°κ°μΌλ‘ λ§ κ΅¬μ±λ©λλ€.
<%body%> {{name}}
λΆλͺ
ν <%body%>
λΆλΆμ νμμ
λλ€.
λνΌλ₯Ό {{
, }}
λλ λ€λ₯Έ κ²μΌλ‘ μ€μ ν μ μμ΅λλ€ (λλ %
, %
). μμ λ λ체 κ°μ²΄μ λνΌλ₯Ό ν¬ν¨νμ§ μκ³ λ체 μ΄λ¦ λ§ ν¬ν¨ν©λλ€.
λ€μκ³Ό κ°μ΄ μλνμμμ€.
"substitutions": {
name: "John",
company: "Some Company",
business: "Faster Pheny"
},
νμμ μ λλ€. μλνμ΅λλ€. μ λ§ κ°μ¬ν©λλ€. λ체 λνΌκ° λλ½λμμ΅λλ€.
μ 체 λ΅λ³μ κ°μ¬λ립λλ€. μ¦κ±°μ΄ μ½λ© λμΈμ!
@adamreisnz ,
μμΌλ‘ μ΄λ° μ’
λ₯μ λ¬Έμ λ₯Ό νΌνκΈ° μν΄ κΈ°λ³Έμ μΌλ‘ sgMail.setSubstitutionWrappers('{{', '}}');
λ₯Ό νΈμΆν΄μΌ ν κ²μ
λλ€. μ΄λ»κ² μκ°ν΄?
@thinkingserious μ°λ¦¬λ μ νν κ·Έλ κ²ν©λλ€. https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/mail/src/classes/mail-service.js#L21 μ°Έμ‘°
@adamreisnz ,
% λλ _μ κ°μ λͺ κ°μ§ μΌλ°μ μΈ λνΌλ₯Ό κ°μ§νλ €κ³ ν μ μμ΅λκΉ?
κ·Έκ²μ κ΅μ₯ ν κ²μ λλ€. Sendgrid ν¬νΈμ ν΅ν΄ μ¬μ©μκ° ν νλ¦Ώμ μμ± / λμμΈ ν λ ν¬νΈμ κΈ°λ³Έμ μΌλ‘ λ체 % body % λ° % name %μ μ½μ ν©λλ€. λ°λΌμ μμ°μ€λ½κ² μ¬μ©μλ % λ¬Έμλ₯Ό λ³κ²½νμ§ μμΌλ € κ³ μκ°νκ³ κΈ°λ₯μ μμ ν μΈμνμ§ λͺ»νλ―λ‘ ν νλ¦Ώμ κ³μ μ¬μ©νκ²λ©λλ€. Sendgridκ° %λ₯Ό μμμ λ¬Έμλ‘ λ³κ²½ν μ μλ€κ³ μ μνκ±°λ κΈ°λ₯μ΄ {{}}μ μ νΈνλ κ²½μ° μ¬μ©μκ°μ΄λ₯Ό μ¬μ©νκ±°λ κΈ°λ³Έ μ€μ μλ‘λνλ ν νλ¦Ώμ΄ μ²μμ %λ₯Ό {{λ‘ λ°κΏλλ€. λ΄κ° μ§λ©΄ ν λ¬Έμ λ₯Ό νΌν μ μμ΅λλ€.
λ§€μ° κ°λ ₯ν μκ³ λ¦¬μ¦μ΄ μλλΌλ©΄ μλ κ°μ§μ κ΄μ¬μ΄ μμ΅λλ€. νλ‘μΈμ€λ₯Ό λ무 μ€λ§νΈνκ² λ§λλ λ° λ°λ₯΄λ λ¬Έμ λ μ μ¬μ μΌλ‘ λλ²κ·ΈνκΈ° μ΄λ €μ΄ μ€λ₯λ‘ μ΄μ΄μ§ μ μλ€λ κ²μ
λλ€. λκ΅°κ° κ°μ‘°νκΈ° μν΄ _
λ₯Ό μ¬μ©νλ©΄ μ΄λ»κ²λ©λκΉ? μ : _ μ λ§ _ κ°μ‘°λ¨. κ·Έλ λ€κ³ _
κΈ°νΈκ° λ체 λνΌλΌλ μλ―Έλ μλλλ€. %
μ λμΌνκ² λ°±λΆμ¨λ‘ μ¬μ©ν μ μμΌλ©° μκ³ λ¦¬μ¦μ΄ μ¬μ©νμ§ μλ λ체 λνΌλ‘ μ¬μ©νκ³ μλ€κ³ μκ°νλλ‘ μμΌ μ μμ΅λλ€.
Sendgridλ {{
λ° }}
λ₯Ό λ체 λνΌλ‘ μ¬μ©νλ νΈλ€ λ° ν
νλ¦ΏμΌλ‘ μ΄λνκ³ μκΈ° λλ¬Έμ μ΄κ²μ΄ ν©λΉν κΈ°λ³Έκ°μ΄λΌκ³ μκ°ν©λλ€. μ΄λ¬ν λ¬Έμκ° μΌλ° μΈμ΄μμλ ννμ§ μκΈ° λλ¬Έμ νΈλ€ λ°μ κ°μ μΈμ΄μμ λ체 λνΌλ‘ μ¬μ©λλ μ΄μ κ° μμ΅λλ€. λ°μ€κ³Ό λ°±λΆμ¨μ΄ λ μΌλ°μ μ΄λ―λ‘ μλͺ» ν΄μ λ κ°λ₯μ±μ΄ μμ΅λλ€.
λλ κ·Έκ²μ λͺ νννκΈ° μν΄ μ΄κ²μ μ λ¬Έμννλ λ¬Έμ λΌκ³ μκ°νλ€. μμ μ λνΌλ₯Ό μ§μ νλ μ΅μ μ μ¬μ©νλ©΄ μ¬μ©μλ μλνλ λ° νμν λͺ¨λ κ²μ κ°μΆμ΄μΌν©λλ€.
λꡬλ μ§ κ°λ ₯ν μλ κ°μ§μ λν μμ΄λμ΄κ° μλ€λ©΄ λͺ¨λ μλ리μ€μ κ°λ₯ν λͺ¨λ λνΌλ₯Ό μ μ²λ¦¬ ν μμλ μμ¬ μκ³ λ¦¬μ¦μλ³΄κ³ μ€νμ νΌνκ³ μΆμ΅λλ€.
μκ°?
λμνλ€. λ¬Έμ μ λ°μ΄νΈκ° μ΅μ μ μ νμ λλ€.
@adamreisnz @vinvantestκ° λμνμ΅λλ€. μ§ν μν©μ https://github.com/sendgrid/sendgrid-nodejs/issues/681 μ μ°Έμ‘°
Sendgrid V3λμ΄ κ°μ dynamic_template_data λκ° λ체λ₯Ό κ΅μ²΄ν΄μΌν©λλ€ :
const msg = {
to: email,
from: '[email protected]',
subject: 'Sample Email Subject',
templateId: 'your_template_id_here,
substitutionWrappers: ['{{', '}}'],
dynamic_template_data: {
"data_item": "value"
}
};
dynamic_template_data
λ₯Ό μ¬μ©ν΄μΌνλ κ²μ΄ λ§€μ° νΌλ μ€λ½μ΅λλ€.
https://sendgrid.com/docs/API_Reference/api_v3.html λ¬Έμλ₯Ό μ
λ°μ΄νΈνλ κ²μ΄ μ’μ΅λλ€.
@goelmk κ°μ₯ μ΅κ·Όμ μλ₯Ό λ°λΌ μλνμ΅λλ€. λλ₯Ό μν΄ μλνμ§ μμ΅λλ€ :(
λ΄ ν
νλ¦Ώμ WYSIWYG νΈμ§κΈ°λ₯Ό μ¬μ©νμ¬ μμ±λμμΌλ©° ν
μ€νΈ κ΅¬μ± μμμ λ²νΌ κ΅¬μ± μμμ URL λ§ν¬ λͺ¨λμ {{verifyUrl}}μ λ£μ΄ 보μμ΅λλ€. λ λ€ μλνμ§ μμ΅λλ€.
@shawnkoh ν΄κ²° νμ΅λκΉ? λν λΉμ£ΌμΌ λμμ΄λλ‘ ν νλ¦Ώμ λ§λ€μλλ° λμ²΄κ° μλνμ§ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
Sendgrid V3λμ΄ κ°μ dynamic_template_data λκ° λ체λ₯Ό κ΅μ²΄ν΄μΌν©λλ€ :