来自自定义策略的 SendGrid API 发送没有主题的电子邮件
SendGrid API from Custom Policy sends email with no subject
我正在使用调用 SendGrid API 的自定义策略来发送 OTP 邮件。 API 发送成功,但主题部分未反映请求的值。
这是我生成 JSON 的自定义策略代码。
<ClaimsTransformation Id="GenerateEmailRequestBody-Local" TransformationMethod="GenerateJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.dynamic_template_data.email" />
<InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="subject" />
</InputClaims>
<InputParameters>
<!-- Update the template_id value with the ID of your SendGrid template. -->
<InputParameter Id="template_id" DataType="string" Value="d-xxxxxxxxxxxxxxxxxxxxxxxxxx" />
<!-- Todo: update the sender -->
<InputParameter Id="from.email" DataType="string" Value="sender@gmail.com" />
<InputParameter Id="from.name" DataType="string" Value="Administrator" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="emailRequestBody" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
下面是从自定义策略生成并发送到 SendGrid 的请求。
{
"personalizations": [
{
"to": [
{
"email": "someone@gmail.com"
}
],
"dynamic_template_data": {
"email": "someone@gmail.com",
"otp": "086924"
}
}
],
"subject": "Verification code",
"template_id": "d-xxxxxxxxxxxxxxxxxxxxxxxx",
"from": {
"email": "someone@gmail.com",
"name": "Administrator"
}
}
有没有我漏掉的部分?请帮忙。
很少有东西可以尝试
- 更新主题的 TransformationClaimType。
<InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="personalizations.0.dynamic_template_data.subject" />
验证主题声明是否具有有效值。尝试将默认值设置为 inputclaim。
更新发送网格门户中的主题字段。
我正在使用调用 SendGrid API 的自定义策略来发送 OTP 邮件。 API 发送成功,但主题部分未反映请求的值。
这是我生成 JSON 的自定义策略代码。
<ClaimsTransformation Id="GenerateEmailRequestBody-Local" TransformationMethod="GenerateJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.to.0.email" />
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="personalizations.0.dynamic_template_data.otp" />
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="personalizations.0.dynamic_template_data.email" />
<InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="subject" />
</InputClaims>
<InputParameters>
<!-- Update the template_id value with the ID of your SendGrid template. -->
<InputParameter Id="template_id" DataType="string" Value="d-xxxxxxxxxxxxxxxxxxxxxxxxxx" />
<!-- Todo: update the sender -->
<InputParameter Id="from.email" DataType="string" Value="sender@gmail.com" />
<InputParameter Id="from.name" DataType="string" Value="Administrator" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="emailRequestBody" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
下面是从自定义策略生成并发送到 SendGrid 的请求。
{
"personalizations": [
{
"to": [
{
"email": "someone@gmail.com"
}
],
"dynamic_template_data": {
"email": "someone@gmail.com",
"otp": "086924"
}
}
],
"subject": "Verification code",
"template_id": "d-xxxxxxxxxxxxxxxxxxxxxxxx",
"from": {
"email": "someone@gmail.com",
"name": "Administrator"
}
}
有没有我漏掉的部分?请帮忙。
很少有东西可以尝试
- 更新主题的 TransformationClaimType。
<InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="personalizations.0.dynamic_template_data.subject" />
验证主题声明是否具有有效值。尝试将默认值设置为 inputclaim。
更新发送网格门户中的主题字段。