Sendgrid-nodejs: ν…œν”Œλ¦Ώμ˜ SendGrid v3 Nodejs λŒ€μ²΄κ°€ μž‘λ™ν•˜μ§€ μ•ŠμŒ

에 λ§Œλ“  2018λ…„ 04μ›” 18일  Β·  15μ½”λ©˜νŠΈ  Β·  좜처: sendgrid/sendgrid-nodejs

μ•ˆλ…•ν•˜μ„Έμš”,

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 μ½”λ“œμ—μ„œ 무엇이 잘λͺ» λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

도움을 μš”μ²­ν•˜μ‹­μ‹œμ˜€.

question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

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" 
    }
   };

λͺ¨λ“  15 λŒ“κΈ€

λŒ€μ²΄ λž˜νΌκ°€ λˆ„λ½ 된 것 κ°™μŠ΅λ‹ˆλ‹€. 이 μ‚¬μš© μ‚¬λ‘€μ—μ„œ μ‚¬μš©ν•œ 예제λ₯Ό κ°„λ‹¨ν•œ ν…œν”Œλ¦ΏμœΌλ‘œ μ‚¬μš©ν–ˆλŠ”λ° μž‘λ™ν•©λ‹ˆλ‹€.

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" 
    }
   };

@goelmk ,

λ‹€μŒ 은 전체 μ˜ˆμž…λ‹ˆλ‹€. 감사!

λ§ˆμŒμ„ λ‹΄μ•„,

Elmer

dynamic_template_data λ₯Ό μ‚¬μš©ν•΄μ•Όν•˜λŠ” 것이 맀우 ν˜Όλž€ μŠ€λŸ½μŠ΅λ‹ˆλ‹€.
https://sendgrid.com/docs/API_Reference/api_v3.html λ¬Έμ„œλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

@goelmk κ°€μž₯ 졜근의 예λ₯Ό 따라 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :(
λ‚΄ ν…œν”Œλ¦Ώμ€ WYSIWYG νŽΈμ§‘κΈ°λ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±λ˜μ—ˆμœΌλ©° ν…μŠ€νŠΈ ꡬ성 μš”μ†Œμ™€ λ²„νŠΌ ꡬ성 μš”μ†Œμ˜ URL 링크 λͺ¨λ‘μ— {{verifyUrl}}을 λ„£μ–΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ‘˜ λ‹€ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@shawnkoh ν•΄κ²° ν–ˆμŠ΅λ‹ˆκΉŒ? λ˜ν•œ λΉ„μ£Όμ–Ό λ””μžμ΄λ„ˆλ‘œ ν…œν”Œλ¦Ώμ„ λ§Œλ“€μ—ˆλŠ”λ° λŒ€μ²΄κ°€ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰