私はSendGridテンプレートで変数<%datetime%>
を定義しました。私は、この命名規則により、すでに配置されている件名の<%subject%>
に従うことにしました。例では変数名の命名規則が異なります。https://github.com/sendgrid/sendgrid-csharp/blob/master/SendGrid/Example/Example.cs#L41は-name-
と-city-
を使用し、https://github.com/sendgrid/sendgrid-csharp/blob/master/SendGrid/Example/Example.cs#L157は%name%
と%city%
を使用しています。Sendgridテンプレート変数を代用するには? (C#で)
変数置換は単純なパターンマッチングに基づいていると仮定しているので、これらの例の対応するテンプレートには同じ正確な文字列が含まれています。それは何らかの理由で今のところ私にとってはうまくいきません。
string sendGridApiKey = ConfigurationManager.AppSettings["SendGridApiKey"].ToString();
var sendGrid = new SendGridAPIClient(sendGridApiKey);
string emailFrom = ConfigurationManager.AppSettings["EmailFrom"].ToString();
Email from = new Email(emailFrom);
string subject = "Supposed to be replaced. Can I get rid of this somehow then?";
string emaiTo = ConfigurationManager.AppSettings["EmailTo"].ToString();
Email to = new Email(emaiTo);
Content content = new Content("text/html", "Supposed to be replaced by the template. Can I get rid of this somehow then?");
Mail mail = new Mail(from, subject, to, content);
mail.TemplateId = "AC6A01BB-CFDF-45A7-BA53-8ECC54FD89DD";
mail.Personalization[0].AddSubstitution("<%subject%>", $"Your Report on {shortDateTimeStr}");
mail.Personalization[0].AddSubstitution("<%datetime%>", longDateTimeStr);
// Some code adds several attachments here
var response = await sendGrid.client.mail.send.post(requestBody: mail.Get());
要求が受け入れられ、処理されたが、私はまだ取得
は、件名行持って電子メールで送信される「置換されることになっています。私は何とかこれを取り除くことはできますか?」
本文は生テンプレートのコンテンツに置き換えられますが、変数は置換されません。私は間違って何をしていますか?