sendgridMail.send
ν¨μλ₯Ό μ¬μ©νμ¬ νΈλμμ
ν
νλ¦Ώμ λ³΄λΌ λ sendgridMail.send
( data.subject
λλ data.personalizations[someIndex].subject
λ₯Ό ν΅ν΄)λ₯Ό μ λ¬νλ data
κ°μ²΄μ μΆκ°λ μ λͺ© μ€ data.personalizations[someIndex].subject
)λ μμ λκ³ μ€μ νΈλμμ
ν
νλ¦Ώ μ체μ μ§μ λ μ λͺ© μ€μ΄ μ¬μ©λ©λλ€.
λ΄κ° μμνλ λμμ data
κ°μ²΄μ μ§μ λ νλκ° κΈ°μ‘΄ ν
νλ¦Ώ νλλ₯Ό μ¬μ μνμ§λ§ κ·Έλ μ§ μμ κ² κ°μ΅λλ€. v3 Mail Send APIμ λν λ¬Έμλ₯Ό 보면 template_id
νλμ μ€λͺ
μ λ€μκ³Ό κ°μ΄ λμ μμ΅λλ€.
μ¬μ©νλ €λ ν νλ¦Ώμ IDμ λλ€. μ λͺ©κ³Ό λ΄μ©(ν μ€νΈ λλ html)μ΄ ν¬ν¨λ ν νλ¦Ώμ μ¬μ©νλ κ²½μ° κ°μΈν λλ λ©μμ§ μμ€μμ μ§μ ν νμκ° μμ΅λλ€.
λμκ² "κ°μΈνλ λ©μμ§ μμ€μμ μ§μ ν νμκ° μλ€"λ κ²μ ν νλ¦Ώ μ λͺ©μ 무μν μ μμ μ μ μμ΅λλ€ "λ‘ λ³κ²½ν΄μΌ ν©λλ€.
data.subject
λ₯Ό "[TEST] My Email Subject"λ‘ μ§μ ν sendgridMail.send
μ¬μ©νμ¬ μ΄λ©μΌμ 보λ΄λ €κ³ νμ΅λλ€.sendgridMail.send
ν¨μλ₯Ό μ¬μ©νμ¬ ν
νλ¦Ώμ 보λ
λλ€. λν data.subject
λλ data.personalizations[someIndex].subject
λ₯Ό μ§μ ν΄μΌ ν©λλ€.μλ νμΈμ @10kc-zackμ λλ€.
λλ νΈλμμ
ν
νλ¦Ώμμ μ λͺ©μ {{ subject }}λ‘ μ€μ ν λ€μ μ½λμμ data.subject
λ₯Ό "[TEST] My Email Subject"
μ€μ νλ€κ³ λ―Ώμ΅λλ€.
κ·Έκ² λΉμ μ μν΄ μλν©λκΉ?
λ§μμ λ΄μ,
μλ¨Έ
@thinkingserious μ κ·νμ μ μμ λν λ΅λ³μ κ°μ¬λ립λλ€!
μ΄λ κ² νλ©΄ μμ μ΄ μλ£λμ§λ§(νμ¬ μ¬μ© μ€μΈ ν΄κ²° λ°©λ²μ) API νΈμΆ λ³Έλ¬Έμ μΌλΆλ‘ μ£Όμ λ₯Ό μ€μ ν μ μλ κ²μ΄ ν¨μ¬ λ μ’μ΅λλ€. APIμ μ 곡ν μ£Όμ κ° νκΈ°λκ³ API λ¬Έμμμ ν΄λΉ μ λ³΄κ° λλ½λ κ²μ΄ μ¬μ€μΈμ§ νμΈν μ μμ΅λκΉ?
μλ νμΈμ @10kc-zackμ λλ€.
λλ νΈλμμ ν νλ¦Ώμμ μ λͺ©μ {{ subject }}λ‘ μ€μ ν λ€μ μ½λμμ
data.subject
λ₯Ό"[TEST] My Email Subject"
μ€μ νλ€κ³ λ―Ώμ΅λλ€.κ·Έκ² λΉμ μ μν΄ μλν©λκΉ?
λ§μμ λ΄μ,
μλ¨Έ
@10kc-zackμ΄ μ΄ ν΄κ²° λ°©λ²μ΄ μλνλ€κ³ λ°νμ§λ§ ν
νλ¦Ώμ΄ '
μν¬μ€νΈλ‘νΌμ κ°μ μΌλΆ λ¬Έμλ₯Ό λ³ννλ κ²μΌλ‘ λνλ¬μ΅λλ€. μ¦ "Someone's"λ₯Ό html μν°ν°λ‘ λ³νν©λλ€. μ λͺ©μ΄ Someone's
μ΄λ©μΌμ΄ λμ°©νμ΅λλ€.
SendMail Nuget ν¨ν€μ§ λ°©λ²μ μ¬μ©νμ¬ μ λͺ© μ€μ μ€μ νλ λ° λ¬Έμ κ° μμ΅λλ€. μμ μ 보λ₯Ό μ¬μ©νμ¬ μ λ°μ΄νΈνλ €κ³ μλν μ½λλ λ€μκ³Ό κ°μ΅λλ€.
public async Task SendAsyncTemplate(string FromAddress, string FromName, string ToAddress, string ToName, string Subject, string LinkText, string LinkUrl)
{
_logger.LogInformation($"Sending mail to: {ToAddress}, with subject: {Subject}");
var apiKey = _sendGridOptions.SendGridAPI;
var client = new SendGridClient(apiKey);
var from = new EmailAddress(FromAddress, FromName);
var to = new EmailAddress(ToAddress, ToName);
var msg = new SendGridMessage();
var templateData = new ExampleTemplateData
{
Subject = Subject,
Name = ToName,
LinkText = LinkText,
LinkUrl = LinkUrl
};
msg.Subject = "{{subject}}";
msg.SetFrom(from);
msg.AddTo(to);
msg.AddCc(from);
msg.SetTemplateId("supersecret");
msg.SetTemplateData(templateData);
var response = await client.SendEmailAsync(msg);
_logger.LogInformation($"SendGrid Response Status Code: {response.StatusCode}");
}
private class ExampleTemplateData
{
[JsonProperty("subject")]
public string Subject { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("linkText")]
public string LinkText { get; set; }
[JsonProperty("linkUrl")]
public string LinkUrl { get; set; }
}
λλ²κΉ λͺ¨λμμ μ€ννλλ° κ°μ΄ μ λλ‘ μ€μ λκ³ μμ΅λλ€. μ λͺ© μ€λ‘ μ»λ κ²μ νμ΄νμ λλ€. μ΄λ€ μμ΄λμ΄?
λ! {{subject}}λ₯Ό μ€μ ν΄μΌ νλ μμΉλ₯Ό μ°Ύμμ΅λλ€. λ€λ₯Έ μ¬λμ΄ μ΄ λ¬Έμ λ₯Ό κ²ͺκ³ μλ κ²½μ° ν νλ¦Ώμ νΈμ§νκΈ° μν΄ μ΄λν λ€μ μΌμͺ½μμ "μ€μ "μ ν΄λ¦νμμμ€. μ£Όμ λ₯Ό μ λ ₯ν 곡κ°μ΄ μμ΅λλ€. μ¬κΈ°μ {{μ λͺ©}}μ μ λ ₯νμΈμ.
@smschick ,
κ·νμ κ²½μ° {{{ subject }}}
ν©λλ€.
@10kc-zack,
λ¬Έμλ₯Ό λ³κ²½νκΈ° μν μμ²μ΄ μ΄λ € μμ΅λλ€. μ΄ λ¬Έμλ₯Ό μ°Έμ‘°νκ³ μλ€κ³ κ°μ νκ³ μμ΅λλ€. λ§μ΅λκΉ?
λ§μμ λ΄μ,
μλ¨Έ
@thinkingserious κ·Έκ²μ μ€μ λ‘ λ΄κ° μΈκΈν λ¬Έμμ λλ€ :+1:
dynamic_template_data
λ₯Ό μ¬μ©νμ§ μκ³ APIλ₯Ό ν΅ν΄ μ£Όμ λ₯Ό μ€μ ν μ μλ κ³ν
@mou01 μ£Όμ μ€μ λ°©λ²μ λν κ°λ¨ν μ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/single-email-single-recipient.md
μ, λμ ν νλ¦Ώ λ°μ΄ν°λ₯Ό μ¬μ©ν λ κ°μΈνλ₯Ό ν΅ν΄ μ£Όμ λ₯Ό μ λ¬ν μ μλ€λ κ²μ΄ λ€μ νΌλμ€λ½μ΅λλ€. 보μ΄λ λ°μ΄ν°λ‘ μ λ¬ν΄μΌ ν©λλ€.
@mou01 μ£Όμ μ€μ λ°©λ²μ λν κ°λ¨ν μ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/single-email-single-recipient.md
λμ ν νλ¦Ώμμ μλν©λκΉ?
μ μκ°μλ κ·Έλ μ§ μμ΅λλ€. λμ ν νλ¦Ώ λ€μ μλ μμ΄λμ΄λ ν νλ¦Ώ μ€μ μμ μ£Όμ λ₯Ό μ€μ νκ³ μ£Όμ μμ λμ λ°μ΄ν°λ₯Ό μ¬μ©νκ² λλ€λ κ²μ λλ€. μ μΆ©μ μ μμ ν μ μ°νκΈ°λ₯Ό μνλ€λ©΄ λμ λ°μ΄ν°λ‘ μ λ¬ν΄μΌ νλ€λ κ²μ λλ€.
μ΄ λ¬Έμ κ° μλ μ¬λμ΄ μλ κ²½μ°:
ν
νλ¦ΏμΌλ‘ μ΄λνμ¬ ν±λλ°ν΄ μμ΄μ½μ΄ μλ "μ€μ "μ ν΄λ¦νκ³ μ΄λ₯Ό μ λͺ© νλ {{subject}}
λ§μ§λ§μΌλ‘ νμ΄λ‘λλ₯Ό λ³΄λΌ λ " dynamic_template_data "μλ μ λͺ© κ°μ΄ μμ΄μΌ ν©λλ€.
"dynamic_template_data":{
"subject": "My Subject Value here"
}
λ¬Έμ λ³κ²½μΌλ‘ μ΄ λ¬Έμ λ₯Ό λ«λ κ²μ μ΄ λ¦¬ν¬μ§ν 리μμ μμ ν μ μλ κ²μ΄ μλλλ€. λ¬Έμ νμ μμ²μ μ μΆνμ΅λλ€(μ°Έμ‘° μ λͺ©: _λ©μΌ 보λ΄κΈ° ν νλ¦Ώ_ID μ€λͺ μ λ°μ΄νΈ). μ λ°μ΄νΈκ° μμΌλ©΄ μ¬κΈ°λ‘ νμ νκ² μ΅λλ€.
λ¬Έμκ° μ λ°μ΄νΈλμμ΅λλ€.
@childish-sambino κ°μ¬ν©λλ€
μΌμ€κ΄νΈλ μ¬μ ν μλνκ³ μμ΅λλ€. μ¬μ ν 곡μ μ루μ
μ
λκΉ?
κ°μ¬ ν΄μ!
@tcukanoot λ€.
κ°μ₯ μ μ©ν λκΈ
λ! {{subject}}λ₯Ό μ€μ ν΄μΌ νλ μμΉλ₯Ό μ°Ύμμ΅λλ€. λ€λ₯Έ μ¬λμ΄ μ΄ λ¬Έμ λ₯Ό κ²ͺκ³ μλ κ²½μ° ν νλ¦Ώμ νΈμ§νκΈ° μν΄ μ΄λν λ€μ μΌμͺ½μμ "μ€μ "μ ν΄λ¦νμμμ€. μ£Όμ λ₯Ό μ λ ₯ν 곡κ°μ΄ μμ΅λλ€. μ¬κΈ°μ {{μ λͺ©}}μ μ λ ₯νμΈμ.