我正在使用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天前发布了同样的问题。但我没有看到社区成员的任何回应。
所以在这里尝试。
答案 0 :(得分:3)
您可以传递空格作为正文的值。这是添加到现有端点的模板的工件。 mail.send API的下一个版本将修复此问题。
这与您的问题无关,但通过电子邮件发送密码,即使是临时密码也不是一种好的安全措施。用户必须输入一些安全问题或其他信息以确认其身份,然后通过表单自行定义新密码。然后,您应该通过电子邮件发送密码已更改的说明。