์ด๋ฉ์ผ์์ ์ ๋ชฉ์ด ๋ณ๊ฒฝ๋์ง ์์
์ ํ sgMail.send (seeBellow)
const seeBellow = {
"from": "[email protected]",
"templateId": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb",
"dynamicTemplateData": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
},
"personalizations": [
{
"to": "[email protected]",
"subject": "Somebody has sent you a Gift Card"
}
],
"isMultiple": false,
"substitutionWrappers": [
"{{",
"}}"
]
}
๊ทธ ๊ฒฐ๊ณผ ๋ค์ ๊ฒ์๋ฌผ์ด
{
"method": "POST",
"url": "/v3/mail/send",
"body": {
"from": {
"email": "[email protected]"
},
"personalizations": [
{
"to": [
{
"email": "[email protected]"
}
],
"subject": "Somebody has sent you a Gift Card",
"dynamic_template_data": {
"username": "[email protected]",
"giftcardAmount": "$45",
"validUntil": "Aug 2019",
"receiptNumber": 111299,
"ewayTransactionId": "00003100003509951fac7d25e8dd96e0"
}
}
],
"template_id": "d-1da76d64a1bd4c8b87c035ccaa3f6cfb"
}
}
๋๋ ๋ํ ๊ฐ์ธํ๋ฅผ ์ฌ์ฉํ๋ ๋์ ๋ฉ์์ง ๋ฐฐ์ด์ ํตํด 2 ๊ฐ์ ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ค๊ณ ์๋ํ์ง๋ง ์ด๊ฒ๋ ์๋ํ์ง ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก from ํ๋ ์์ ์ฃผ์ ๋ฅผ ๋ฐฐ์นํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ ์๋ํ์ง ์์์ต๋๋ค.
"@sendgrid/mail": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-6.3.1.tgz",
"integrity": "sha512-5zIeAV9iU+0hQkrOQ/D4RB2MfpK+lNbOortIfQdCh95aMDF/TRc9WB8FGNhmQrx9YMuJTms5eiBklF0Fi/dbVg==",
"requires": {
"@sendgrid/client": "6.3.0",
"@sendgrid/helpers": "6.3.0"
}
},
๋ด๊ฐ ์ฌ์ฉํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ {{subject}}์ ๊ฐ์ SendGrid์ ์น ์ธํฐํ์ด์ค์ ์ ๋ชฉ์ ์ถ๊ฐ ํ ๋ค์ ์ ๋ชฉ ๋ณ์๋ฅผ dynamic_template_data
์
๋๋ค. ํ
ํ๋ฆฟ ๋ณ์๋ ์ฃผ์ ์์ ์๋ํ๋ฏ๋ก ๋ณธ์ง์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ฒด ์ฃผ์ ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์ @falconmick ,
@ wbw20 ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํฉ๋๋ค. ๊ทผ๋ณธ ์์ธ์ ์กฐ์ฌ ํ ๋ ์๋ํด๋ณด์ญ์์ค.
@ wbw20 ,
๋์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์๋ฃจ์ ์ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ฅผ ํธ์งํ์ต๋๋ค. ๋น์ ์ ์๋๊ฐ ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค.
๋ง์์ ๋ด์,
Elmer
FWIW, Ruby lib์์๋ ๋น์ทํ ๋์์ด ๋ณด์ ๋๋ค.
์ด๋ฉ์ผ ๊ฐ์ฒด์ ์ ๋ชฉ์ ์ค์ ํด๋ ์น ๋๊ตฌ์ ํ ํ๋ฆฟ์ ์ ์ ๋ ๋ด์ฉ์ ์ฌ์ ์ํ์ง ์์ต๋๋ค. ํธ๋ค ๋ฐ๋ก ๋ง๋ค๊ณ ๊ฐ ๊ฐ์ธํ์ ์ถ๊ฐํด์ผํฉ๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์คํจํ ์ด์ ๋ฅผ ์ ํํ ์ง์ ํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์คํ ๊ฐ๋ฅํด ๋ณด์ด์ง๋ง ๋ค๋ฅธ ๋ชจ๋ SendGrid ์ ์ ๋ฉ์ผ์ ๋ํ ์ค์ ์ ์ด๊ธ๋ ๊ธฐ ๋๋ฌธ์ ์ํ๊น์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์์ผํฉ๋๋ค.
"dynamic_template_data": {
"์ ๋ชฉ": "์ ๋ชฉ",
},
https://sendgrid.com/dynamic_templates ๋ก ์ด๋
TEMPLATE SETTINGS์ {{{subject}}}๋ฅผ ์ถ๊ฐํ์ธ์.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํฉ๋๋ค : +1 :
@atarabbi ์ ์๋ฃจ์ ์ ํ์ํ ๊ฒ์ด์ด์ผํฉ๋๋ค. ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด์ด ์ค๋ ๋์ ๊ณ์ ๋๊ธ์ ๋ฌ์์ฃผ์ธ์. ๊ฐ์ฌ!
@atarabbi ์ ์๋ฃจ์ ์ ํ์ํ ๊ฒ์ด์ด์ผํฉ๋๋ค. ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด์ด ์ค๋ ๋์ ๊ณ์ ๋๊ธ์ ๋ฌ์์ฃผ์ธ์. ๊ฐ์ฌ!
๊ทธ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ API๊ฐ ์ฐ๋ฆฌ๊ฐ ์๋นํ๋๋ก ๋ฌธ์ํ ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๊ถ๊ทน์ ์ผ๋ก ์๋ํ์ง ์๋ ๊ฒ์ด ์ฌ์ ํ ๋จ์ ์์ง ์์ต๋๊น? ์ฌ๋ฌผ์ด ํ์ฉํ๋๋๋ก ์ฃผ์ ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ฌ์ ํ ๊นจ์ง ๊ฒ์ฒ๋ผ ๋ณด์ผ๊น์?
์, ๋ฌธ์๊ฐ ์ฃผ์ ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ด dynamic_template_data์ ๋ฌธ์ ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด๊ฒ๋ ๊ฒฝํํ๊ณ ์์ต๋๋ค.
์ ๋ชฉ ์ค์ ๋์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ ๋ฌธ์๊ฐ ๋๋๋๋ก ์ผ๊ด์ฑ์ด ์์ต๋๋ค.
์ฌ๊ธฐ ๋ฌธ์ @baugarten ํ์ธํ๊ธฐ ์ํด, ๊ทธ๊ฒ์ด ๋น์ ์๊ฒ ํจ๊ณผ๊ฐ ์๋ค๋ ๋ง์ ๋๊น? ์ฐ๋ฆฌ๊ฐ ์๋ชป๋ ๋ฐฉํฅ์ ๊ฐ๋ฆฌํค๋ ๊ณณ์ ์ง์ ํ ์ ์์ต๋๊น?
๋๋ ์ฐ๋ฆฌ๊ฐ ํด๋ผ์ด์ธํธ ํจํค์ง์ dynamic_template_data๋ฅผ ๋ฌธ์ํ ํ๊ณ
๋ํ ์ต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ v6.3.1์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
ํ์คํ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํผ๋์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค!
FWIW Golang ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. API ํธ์ถ์์ ํ ํ๋ฆฟ ์ ๋ชฉ์ ์ฌ์ ์ ํ ์ ์์ต๋๋ค. ์ ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์์ผ๋ฉด ๊ฑฐ๊ธฐ์์๋ ๋ฌธ์ ๋ฅผ ๋ง๋ค ๊ฒ์ ๋๋ค.
์ด, ๋ฌธ์๋ ๊ตฌ์ฒด์ ์ผ๋ก ๊ธฐ๋ณธ ์ฃผ์ ๊ฐ ๊ฐ์ธํ ์ฃผ์ ๋ก ๋ฎ์ด ์ฐ์ผ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ฉฐ ์ฃผ์ ๋ฅผ ํ ํ๋ฆฟ ํ ์์๋ ๊ฒ๊ณผ ์ ํ ๊ฐ์ง ์์ต๋๋ค.
ํธ์ง : ํนํ ์์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ํ์ง ์์ ๋. ํ ํ๋ฆฟ์ ์ฌ์ฉํ ์์๋ ๊ฐ์ธํ์ ์ฃผ์ ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ํ ๋ ๋์ ์ผ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒฝ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋์ด๋ฅผ dynamic_template_data ํ์ ๊ฐ์ฒด์ ์ถ๊ฐํด์ผํฉ๋๋ค.
๋ํ ์ด๊ฒ์ ๋ถ๋ช์ณ ์ฃผ์ ๋ฅผ ๋ฎ์ด ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฃผ์ ๋ฅผ 'dynamic_template_data'์ ๋จ๊ฒจ๋๊ณ ํ ํ๋ฆฟ์์ {{{subject}}}๋ฅผ ์ฌ์ฉํ์ฌ ์ฐธ์กฐํ๋ฉด ์ค์ ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ๋ด๊ฐ ์์ ์ฐจ๋ฆฐ ๊ฒ์ custom_args๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋์ฒด์ ํจ๊ป 'dynamic_template_data'๋ก ๋ณํฉ๋ฉ๋๋ค. ๋ถํํ๋ ๋ฌธ์๋ ์ด๊ฒ์ ๋งํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ธ์ด ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๋ฌํ๋ ค๋ฉด 'dynamic_template_data'์์๋์ด๋ฅผ ์ํํ์ญ์์ค.
"dynamic_template_data"ํ๋๋ ์๋ํ์ง๋ง ๋ฌธ์ํ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค : https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html
์ด๊ฒ์ ์ฌ์ ํ โโ๋ฌธ์ ์ ๋๋ค. ์ ์ด๊ฒ์ด ๋ซํ์ต๋๊น?
ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ ์ ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. ๋์ผํ ์ ๋ชฉ์ ์ฌ์ฉํ์ฌ ~ 30 ๊ฐ์ ์ด๋ฉ์ผ์ ๋ฃจํ๋ก ๋ณด๋ด๋ฉด ๋ด๊ฐ ๋ณด๋ธ ์ ๋ชฉ๊ณผ ํจ๊ป ์ผ๋ถ๋ฅผ ์์ ํ๊ณ (์ ๋ชฉ ์์) ์ผ๋ถ๋ฅผ ์์ ํฉ๋๋ค.
ํ์ฌ API๋ฅผ ํตํด ์ฌ์ฉ์ ์ง์ ์ ๋ชฉ์ ์์ ์ ์ผ๋ก ๋ณด๋ผ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
@ deepai-org ์ฌ๊ธฐ์์ ์ต์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค : https://sendgrid.com/docs/API_Reference/api_v3.html
@vladkosarev ํธ๋ค ๋ฐ๋ก ํ ํ๋ฆฟ ํ ๋ ์ ๋ชฉ (https://github.com/sendgrid/sendgrid-nodejs/issues/713#issuecomment-443206995 ์ฐธ์กฐ)๊ณผ ๋์ผํ ๋์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์์ฒญ ํ์ด๋ก๋์ ์ ์ ํ ์ฃผ์ ์ ๋ํ ๋์ ํ ํ๋ฆฟ ๋ฐ์ดํฐ์ ์ฃผ์ ๋ฅผ ์์ ์ ์ผ๋ก ์ฌ์ฉํ์ง ์์ต๋๊น? ์ด ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ ์ธก ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฒ๋ฆฌ ํ ์ โโ์๊ฑฐ๋ ์ฒ๋ฆฌํด์ผํ๋ ๋ฌธ์ ๊ฐ ์๋๋ฏ๋ก ์ง์ํ์ ๋ฌธ์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
@ childish-sambino ์ ์ ํ ์ ๋ชฉ์ด ์ค์ ๋ก ๋ชจ๋ ์ด๋ฉ์ผ์์ ์ ํํ์ต๋๋ค. ์ ์ ๋์ ๋น๋๊ธฐ๊ฐ ์งํ๋๊ณ ์ผ๋ถ ์ด๋ฉ์ผ์๋ ์ด์ ์ด๋ฉ์ผ ํ ํ๋ฆฟ๊ณผ ์๋ก์ด ํ ํ๋ฆฟ์ด ์ ๊ณต๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://sendgrid.com/docs/API_Reference/api_v3.html ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ ๋๊น? ํด๋น ๋ฌธ์์ ์ค๋ช ๋๋๋ก ์ ๋ชฉ์ ๋ณด๋ด๋ ๊ฒ์ด ์๋ํ์ง ์๋๋ค๊ณ ํ์ ํฉ๋๋ค. ์ง๊ธ๊น์ง ์๋ ํ ์ ์ผํ ๋ฐฉ๋ฒ์์ด ํฐ์ผ์ ์ค๋ช ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
@vladkosarev ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ ๋๋ค. ๋์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ด ๋ฌธ์ ์ ์ค๋ช ๋๋๋ก ์ด๋ฉ์ผ๋ณ๋ก ์ ๋ชฉ์ ์์ ํ๋ ค๋ฉด ์ ๋ชฉ์ ํ ํ๋ฆฟ ํํ๊ณ ๋์ ํ ํ๋ฆฟ ๋ฐ์ดํฐ๋ก ์ ๋ฌํด์ผํฉ๋๋ค. ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋ฉ์ผ ์ ์ก ํ์ด๋ก๋์ ์ ๊ณต๋ ์ ๋ชฉ์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ ๋ชฉ์ด ๋ชจ๋ ์ด๋ฉ์ผ์ ๋ํด ์ ํํ๊ธฐ ์ํด ๋๊ธฐํ๊ฐ ํ์ํ ์ด์ ๋ ์ง์ํ์ ๋ฌธ์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
@ childish-sambino ๋ฌธ์์์ ๋์ ํ ํ๋ฆฟ์์ ์ฃผ์ ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ์์น๋ฅผ ์๋ ค์ฃผ์๊ฒ ์ต๋๊น? ์ ๋งํฌ ์ด๋์์๋ ์ฐพ์ ์ ์์ต๋๋ค. ๊ฐ์ฌ!
@vladkosarev๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ธฐ์ตํ๋ฉด ์ฃผ์ ์ ๋ํ ํ ํ๋ฆฟ ์์ฒด์ ํธ๋ค ๋ฐ ๊ฐ์ ์ค์ ํ๊ณ ์ถ์ต๋๋ค.์ด ์์ ์ ํ ํ๋ฆฟ GUI๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฝ๋์์ ํด๋น ๊ฐ์ ์ฐธ์กฐํ์ญ์์ค.
@aroach ๊ฐ์ฌํ์ง๋ง github์ ๋ํ ์๊ฒฌ์ด ์๋๋ผ ๋ฌธ์์์ ๋ณด๋ ๋ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ {{}}๋ ๋ด๊ฐ ์๋ํ์ ๋ ์๋ํ์ง ์์๊ณ ์ผ์ค ๋๊ดํธ {{{}}} ๋ง ์๋ํ์ต๋๋ค (์ด์ ๊ณผ ๋์ผํ ๋น๋๊ธฐ ๋ฌธ์ ์ผ ์ ์์).
@vladkosarev ์ฌ๊ธฐ์ ์ธ๊ธ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค : https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/
์ด ํธ๋ค ๋ฐ ํ ํ๋ฆฟ์ ํ ํ๋ฆฟ์ ํ ์คํธ, html ๋ฐ ์ ๋ชฉ ์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@aroach ๊ฐ์ฌํฉ๋๋ค. ๋ฐฉ๊ธ ๋ ๋ง์ ํ ์คํธ๋ฅผ ์ํํ์ผ๋ฉฐ ์ฃผ์ ๋ ์ค์ ๋ก ํ ํ๋ฆฟ์ '์ ์ฉ'ํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ํ ์คํธ์ค์ธ ๊ฒฝ์ฐ ์๋ํ์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค (ํ ํ๋ฆฟ ํธ์ง / ๋ณด๋ด๊ธฐ). 10 ๋ถ์ ๊ธฐ๋ค๋ฆฌ๋ฉด ์ค์ ๋ก ์ ์ฉ๋๊ณ ์๋ ํ๋๋ก ์๋ํฉ๋๋ค. SG์ ์ฐ๋ฝํ์ฌ ํ ํ๋ฆฟ ์ ๋ฐ์ดํธ๊ฐ ์ค์๊ฐ์ด ์๋๋ฉฐ (์ ์ด๋ ์ฃผ์ ์ ๊ฒฝ์ฐ) ํ ์คํธ๋ฅผ ์ํํ๋ ค๋ฉด ์ ์ ๊ธฐ๋ค๋ ค์ผํ๋ค๊ณ ๋ฌธ์ํ ํ ์ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
@Whatthefoxsays ๋ ์ด๊ฒ์ ์ถ์ ํ๊ฑฐ๋ ์ ์ ํ ํธ์ง์ ํ ์ ์์ด์ผํฉ๋๋ค. ๐
@aroach ๋ด๊ฐ ์ธ๊ธํด์ผ ํ ํ ๊ฐ์ง๋ ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ๋ฐ ๋ ๊ฐ์ IP๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ SG์ ๋ด๋ถ ์๋์ ๋ชจ๋ฅด์ง๋ง ๋ฌธ์ ๊ฐ์์ ์ ์์ต๋๋ค (๋ ๋ฒ์งธ ๋ ธ๋๋ก ์ ํํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋์?).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค์๊ณผ ๊ฐ์์ผํฉ๋๋ค.
"dynamic_template_data": {
"์ ๋ชฉ": "์ ๋ชฉ",
},
https://sendgrid.com/dynamic_templates ๋ก ์ด๋
TEMPLATE SETTINGS์ {{{subject}}}๋ฅผ ์ถ๊ฐํ์ธ์.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํฉ๋๋ค : +1 :