Sendgrid:使用模板版本支持多种语言
Sendgrid: use template versions to support multiple languages
我想利用 Sendgrid 模板版本来支持多语言支持。
根据 Sendgrid documentation:
A template can only have one active version at a time. If you’ve
created a new version with different HTML that you want your customers
to start receiving, you’ll need to make that version “Active.”
因此,例如我有 2 个版本的模板:英语(活动) 和 俄语。因此,如果我想发送俄语版本的电子邮件,我需要在发送电子邮件之前激活俄语模板版本。
但我担心的是:如果我需要同时发送俄语和英语版本的邮件怎么办? Sendgrind 能否为 2 个同时请求提供合适的版本?
我能够使用 Sendgrid Dynamic Transactional Templates. The idea here is that you should create transactional template and design it with the help of handlebars if/else
条件语句为我的电子邮件实现多语言支持。例如:为您的模板添加英语和俄语支持可以如下所示:
<table>
<tbody>
{{#if english}}
<tr>
<td>
<div style="text-align: center;"><span style="color:#7a7a7a;"><span style="font-size:12px;">My web site in social networks</span></span></div>
</td>
</tr>
{{else if russian}}
<tr>
<td>
<div style="text-align: center;"><span style="color:#7a7a7a;"><span style="font-size:12px;">Мой Веб сайт в социальных сетях</span></span></div>
</td>
</tr>
{{/if}}
</tbody>
</table>
那么请求应该包含:
{
"personalizations": [
{
"to": [
{
"email": "to_@email.com"
}
],
"dynamic_template_data": {
"subject": "Subject_translated_to_desired_language",
"russian": true
// other placeholders
}
}
],
"from": {"email": "from_@mail.com"},
"template_id":"dynamic_template_id"
}
如果您将此请求发送到 Sendgrid,它将以俄语向您发送电子邮件内容。
This example 很有帮助。
如果我必须管理 20 种语言怎么办?我们如何以这种方式进行管理?
也许你可以尝试使用这个 api。 https://sendgrid.api-docs.io/v3.0/send-test-email/marketing-campaigns-send-test
看起来像你需要的。
邮件测试api:
https://api.sendgrid.com/v3/marketing/test/send_email
您可以使用以下 api 获取所有可用的模板版本。
https://api.sendgrid.com/v3/templates?generations=dynamic
拥有所有模板和版本后,根据版本名称选择您选择的 version_id,您可以将其添加到 sendgrid 中的模板。
https://api.sendgrid.com/v3/marketing/test/send_email
在邮件测试中 api 您应该可以设置以下字段。
{
"template_id": "string (required)",
"version_id_override": "string (optional)",
"sender_id": "integer (optional)",
"custom_unsubscribe_url": "string (optional)",
"suppression_group_id": "integer (optional)",
"emails": [
"string"
],
"from_address": "string (optional)"
}
我想利用 Sendgrid 模板版本来支持多语言支持。
根据 Sendgrid documentation:
A template can only have one active version at a time. If you’ve created a new version with different HTML that you want your customers to start receiving, you’ll need to make that version “Active.”
因此,例如我有 2 个版本的模板:英语(活动) 和 俄语。因此,如果我想发送俄语版本的电子邮件,我需要在发送电子邮件之前激活俄语模板版本。
但我担心的是:如果我需要同时发送俄语和英语版本的邮件怎么办? Sendgrind 能否为 2 个同时请求提供合适的版本?
我能够使用 Sendgrid Dynamic Transactional Templates. The idea here is that you should create transactional template and design it with the help of handlebars if/else
条件语句为我的电子邮件实现多语言支持。例如:为您的模板添加英语和俄语支持可以如下所示:
<table>
<tbody>
{{#if english}}
<tr>
<td>
<div style="text-align: center;"><span style="color:#7a7a7a;"><span style="font-size:12px;">My web site in social networks</span></span></div>
</td>
</tr>
{{else if russian}}
<tr>
<td>
<div style="text-align: center;"><span style="color:#7a7a7a;"><span style="font-size:12px;">Мой Веб сайт в социальных сетях</span></span></div>
</td>
</tr>
{{/if}}
</tbody>
</table>
那么请求应该包含:
{
"personalizations": [
{
"to": [
{
"email": "to_@email.com"
}
],
"dynamic_template_data": {
"subject": "Subject_translated_to_desired_language",
"russian": true
// other placeholders
}
}
],
"from": {"email": "from_@mail.com"},
"template_id":"dynamic_template_id"
}
如果您将此请求发送到 Sendgrid,它将以俄语向您发送电子邮件内容。
This example 很有帮助。
如果我必须管理 20 种语言怎么办?我们如何以这种方式进行管理?
也许你可以尝试使用这个 api。 https://sendgrid.api-docs.io/v3.0/send-test-email/marketing-campaigns-send-test 看起来像你需要的。
邮件测试api:
https://api.sendgrid.com/v3/marketing/test/send_email
您可以使用以下 api 获取所有可用的模板版本。
https://api.sendgrid.com/v3/templates?generations=dynamic
拥有所有模板和版本后,根据版本名称选择您选择的 version_id,您可以将其添加到 sendgrid 中的模板。
https://api.sendgrid.com/v3/marketing/test/send_email
在邮件测试中 api 您应该可以设置以下字段。
{
"template_id": "string (required)",
"version_id_override": "string (optional)",
"sender_id": "integer (optional)",
"custom_unsubscribe_url": "string (optional)",
"suppression_group_id": "integer (optional)",
"emails": [
"string"
],
"from_address": "string (optional)"
}