2016-03-07 69 views
3

我使用SendGrid(https://sendgrid.com/)從我的應用程序發送電子郵件。我有關於使用SendGrid SMTP API的查詢。即使我使用setTemplateId,SendGrid - setHtml或setText是強制性的嗎?

我有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

所以想在這裏。

回答

3

您可以傳遞一個空格作爲正文的值。這是將模板添加到現有端點的工件。下一個版本的mail.send API將解決這個問題。

這與您的問題無關,但通過電子郵件發送密碼甚至是臨時密碼並不是一個好的安全措施。用戶應該輸入一些安全問題或其他信息來確認他們的身份,然後通過表單自己定義新密碼。然後您應該通過電子郵件發送密碼,說明密碼已更改。

+0

嗨@bwest ..我在發佈這個..之前試着用空間..抱歉沒有提到這個在我的問題..它替換主題作爲身體參數,如果我發送setHtml或setText空間。 :( – kaluva

+0

順便說一下,這只是用於測試模板的郵件功能..我們不打算在生產中部署這個...反正,謝謝你的建議.. :) – kaluva

相關問題