μ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν λ λμ²΄κ° μλνμ§ μμ΅λλ€. 컬μ μ¬μ©ν λ μλν©λλ€.
`'use strict';
var config = {
apiKey: '',
from: '',
to: '',
templateId: ''
}
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(config.apiKey);
async function sendTest() {
var newMsg = {
"from": {
"name": "Test Script",
"email": config.from
},
"personalizations": [{
"to": config.to,
"substitutions": {
"-firstName-": "Maciejs",
"%firstName%": "Maciej",
"-first_name": "Maciej",
"%first_name%": "Maciej"
}
}],
"subject": "test subject",
"content": [{
"type": "text/plain",
"value": "Hello, %firstName%!"
},
{
"type": "text/html",
"value": "<html><p>Hello, %firstName%!</html> "
}],
"template_id": config.templateId
}
await sgMail.send(newMsg);
}
sendTest();`
SendGrid νΈμ§κΈ°μ ν
νλ¦Ώ μ€ν¬λ¦° μ·κ³Όλ°μ μ΄λ©μΌλ 첨λΆνκ³ μμ΅λλ€.
@MaciejKrawczyk setSubstitutionWrapper
λ₯Ό μ¬μ©νκ³ substitutions
μμ λνΌλ₯Ό μλ΅ ν΄ λ³΄μ
¨μ΅λκΉ?
μ μ:
sgMail.setSubstitutionWrappers('-', '-');
"substitutions": {
"firstName": "Maciejs"
}
μ΄λ° μμΌλ‘ ν λ²μ μ¬λ¬ λνΌλ₯Ό μννλ λ°©λ²μ νμ€νμ§ μμ§λ§ λ체 μμ±μ λνΌλ₯Ό μ§μ νμ§ μμμΌλ‘μ¨μ΄ λ²μ μ μ¬μ©νλ μ μν¨μ μ»μ μμμμ΅λλ€. λ΄ κ΅¬λ
μ λͺ¨μ΅
emailOptions.substitutions = {}
emailOptions.substitutions.CLIENT_NAME = myClientName
ν¨κ³Όκ°μλ€. κ°μ¬ν©λλ€!
@kmcurryλ₯Ό λμ μ£Όμ μ κ°μ¬ν©λλ€!
@MaciejKrawczykλ₯Ό μ€ν ν΄ μ£Όμ μ κΈ°μ©λλ€!
μ΄κ²μ νμ€ν READMEμ λ£μ΄μΌν©λλ€! μ΄κ²μ μμλ΄λ λ° 2 ββμκ°μ΄ 걸립λλ€!
@LASkuma ,
κ·Έκ²μ μ’μ§ μλ€ :(
μ΄ λ¬Έμκ° λμμ΄λ©λκΉ? κ·Έλ λ€λ©΄ λͺ νν λ§ν¬κ° μλμ§ νμΈν μ μλλ‘ μ²μμΌλ‘ λμμ μμ²ν κ³³μ μλ € μ£Όμκ² μ΅λκΉ?
κ°μ¬!
λ§μμ λ΄μ,
Elmer
@thinkingserious λ€. μ΄ λ¬Έμλ λ§μ λμμ΄λμμ΅λλ€. νμ§λ§ λ체 ν€μ λνΌκ° ν¬ν¨λμ΄μΌνλ 곡μ μΉ μ¬μ΄νΈμμ μκΈ° λλ¬Έμ μ¬μ© μ¬λ‘μλ³λ‘ μ κ²½μ μ°μ§ μμμ΅λλ€.
μλ νμΈμ @LASkuma ,
곡μ μΉ μ¬μ΄νΈμμ μλ€κ³ ν λ μ΄λ€ URLμ μ°Έμ‘°νκ³ μλμ§ μλ €μ£Όμκ² μ΅λκΉ? κ°μ¬!
μλ
νμΈμ @thinkingserious ,
λλ μ΄ νμ΄μ§λ₯Ό μΈκΈνκ³ μμλ€. μλν΄λ³΄κΈ° μΉμ
μλ λνΌκ° ν¬ν¨ λ λ체 ν€κ° μμ΅λλ€. λ¬Έμλ₯Ό μ½μ ν Node λΌμ΄λΈλ¬λ¦¬κ° λ¬Έμμ μμ°μ€λ½κ² μΌμΉνλ€κ³ μκ°νμ΅λλ€.
κ°μ¬ν©λλ€ @LASkuma!
μ λ§ μ μ©ν νΌλλ°±μ λλ€.
κ·Έλλ μ루μ μ λν΄ μ λͺ¨λ₯΄κ² μ΅λλ€. μ΄λ¬ν λ¬Έμλ APIμ μ§μ μνΈ μμ©νκ³ λμ°λ―Έ λΌμ΄λΈλ¬λ¦¬ μ€ νλλ₯Ό μ¬μ©νλ €λ μ¬λλ€μμν κ²μ λλ€.
μμ READMEμμ΄ λ¬Έμλ₯Ό ν¬ν¨ν΄μΌνλ€κ³ μΈκΈνμ ¨μ΅λλ€. μ¬κΈ° λ₯Ό μλ―Έν©λκΉ? κ±°κΈ°μμ λ체 μ¬μ© μ¬λ‘λ₯Ό ꡬ체μ μΌλ‘ μΈκΈν΄μΌν©λκΉ?
λμ μ£Όμ μ λ€μ ν λ² κ°μ¬λ립λλ€!
λ§μμ λ΄μ,
Elmer
μ΄κ²μ νμ€ν readmeμ μμ΄μΌν©λλ€. λλ λͺ¨λ κ²μ μλνκ³ , SendGrid api referenceμμλ λͺ¨λ λ¬Έμλ₯Ό μ½κ³ , GitHubμμλ λͺ¨λ κ²μ (λ΄ μκ°μ), μ§μνμ μ°λ½νκ³ , @kmcurryκ° μλλΌλ©΄ λ΄ API λνΌλ₯Ό
κ°μ¬ν©λλ€ @MaciejKrawczyk ,
μ΄κ²μ λ§€μ° μ’μ νΌλλ°±μ΄λ©° λ μ¬μΈ΅μ μΈ λΆμμ μν΄ μ΄κ²μ μ°λ¦¬ νμ λ°± λ‘κ·Έμ μΆκ°νμ΅λλ€. μ΄ μ€λ λμ λν μ λ°μ΄νΈλ₯Ό μ 곡ν©λλ€.
κ°μ¬!
λ§μμ λ΄μ,
Elmer
μλ£ λμλμ? λλ κ°μ λ¬Έμ κ° μμ΅λλ€.
μλ νμΈμ @sriharrsha ,
@kmcurry μ μ μμ μλν΄
μμ§. μλ μ¬λΆλ₯Ό 곧 μ
λ°μ΄νΈνκ² μ΅λλ€.
λ¦μ λ΅λ³ μ£μ‘ν©λλ€.
λ κ°μ μ λ§μ μΈ μ΄μ λͺ¨λμκ² : V3 APIμ μ¬μ©ν νμκ° dynamic_template_data
λμ substitutions
μ΄ μμ§ μ΄λ λ¬Έμνλμ΄ μμ§ μμ΅λλ€!
κ·Έλ° λ€μ μ¬μ© {{var_name}}
μ΄λ©μΌ ν
νλ¦Ώκ³Ό dynamic_template_data: { var_name: "var_value" }
APIμ νΈμΆμ.
@tkafka μ€ λ§μ΄ κ°! μ΄ λ¨μ λλΆμ μ§λ μ΄ν λμ 머리λ₯Ό λ½μ μ£Όμ ¨μ΅λλ€.
@tkafka κ°μ¬ν©λλ€! λ무 λ΅λ΅ ν΄μ! λ΄ ν루 3 μκ° κ±Έλ Έμ΄ ...
λκ΅°κ°κ° κ°μ κ²μ μ°Ύλ κ²½μ°μ λν μ 체 μ½λλ λ€μκ³Ό κ°μ΅λλ€.
var sendgrid = require('@sendgrid/mail');
sendgrid.setApiKey(env.sendgridApiKey);
sendgrid.setSubstitutionWrappers('{{', '}}');
var newMsg = {
"from": {
"name": "Your Company",
"email": env.businessEmail
},
"personalizations": [{
"to": order.email,
"dynamic_template_data": {"order_id": "1234", "first_name": "Max", "last_name": "Mustermann"}
}],
"subject": "test subject",
"content": [{
"type": "text/plain",
"value": "Hello, {{firstName}}!"
},
{
"type": "text/html",
"value": "<html><p>Hello, {{'firstName}}!</html> "
}],
"template_id": env.sendgridOrderConfirmationTemplateId
};
console.log("Sending confirmation email...")
return sendgrid.send(newMsg);
sendgridμ λ¬Έμλ μ무리 λμ°ν©λλ€.
μλ νμΈμ μ¬λ¬λΆ,
μ§ν μν©μ μ΄ λ¬Έμ λ₯Ό μ°Έμ‘°νμμμ€. μ°λ¦¬λ νμ¬ C #, Java, κ·Έλ¦¬κ³ μ΄ SDKμ λν μ λ°μ΄νΈ μμ μνκ³ μμ΅λλ€. μν΄ ν΄ μ£Όμ μ κ°μ¬ν©λλ€. μ§μ°μ λν΄ μ¬κ³Όλ립λλ€.
λ§μμ λ΄μ,
Elmer
ν, dynamic_template_data
. λΉμ μ μμ νΌμ¦μ νμμ΅λλ€! :λ―Έμ:
λ€λ₯Έ νμ΄ν μ€ν¬λ¦½νΈ μ¬μ©μμ κ²½μ°- mail.d.ts
νμΌ μμ± :
import {MailData} from "@sendgrid/helpers/classes/mail";
// see https://github.com/sendgrid/sendgrid-nodejs/issues/638
declare module "@sendgrid/helpers/classes/mail" {
export interface MailData {
dynamic_template_data: {[key: string]: string};
}
}
@xduseko κ°μ¬ν©λλ€!
κ°μ₯ μ μ©ν λκΈ
λ κ°μ μ λ§μ μΈ μ΄μ λͺ¨λμκ² : V3 APIμ μ¬μ©ν νμκ°
dynamic_template_data
λμsubstitutions
μ΄ μμ§ μ΄λ λ¬Έμνλμ΄ μμ§ μμ΅λλ€!κ·Έλ° λ€μ μ¬μ©
{{var_name}}
μ΄λ©μΌ ν νλ¦Ώκ³Όdynamic_template_data: { var_name: "var_value" }
APIμ νΈμΆμ.