即使我使用setTemplateId,SendGrid - setHtml或setText是必需的吗?

时间:2016-03-07 12:10:59

标签: sendgrid

我正在使用SendGrid(https://sendgrid.com/)从我的应用程序发送电子邮件。我有关于SendGrid SMTP API使用情况的查询。

我有SendGrid模板myTemplateId,其中“newPwd”作为替换变量。在java中,我定义如下:

SendGrid.Email email=new SendGrid.Email();
email.addTo(toEmailId);
email.setFrom(fromId);
email.setSubject(subject);
email.setTemplateId("myTemplateId");
email.addSubstitution("#newPwd#", new String[]{"myNewPwd"});
SendGrid.Response response=sendGrid.send(email);

当我运行时,我的错误响应低于:

{"errors":["Missing email body"],"message":"error"}

如果我设置,email.setHtml("withsomedummytext")它的工作正常。但这是在电子邮件正文中显示不需要的文本。我不知道怎么能避免这种情况。

但我不明白为什么我应该设置身体,如果我有定义身体的模板。我错过了什么吗?任何人都可以澄清一下。

我在sendgrid社区3天前发布了同样的问题。但我没有看到社区成员的任何回应。

https://community.sendgrid.com/sendgrid/topics/sethtml-or-settext-mandatory-even-if-i-use-settemplateid

所以在这里尝试。

1 个答案:

答案 0 :(得分:3)

您可以传递空格作为正文的值。这是添加到现有端点的模板的工件。 mail.send API的下一个版本将修复此问题。

这与您的问题无关,但通过电子邮件发送密码,即使是临时密码也不是一种好的安全措施。用户必须输入一些安全问题或其他信息以确认其身份,然后通过表单自行定义新密码。然后,您应该通过电子邮件发送密码已更改的说明。