2015-05-09 100 views
3

我已經將發送網格與我的Django應用程序集成在一起,並且郵件也成功發送。但是現在我想從我的django應用程序發送帶有設計模板的電子郵件。我也閱讀過文檔,但不知道如何以編程方式使用它。這是我第一次使用發送電網。請任何人都可以幫我找出如何從django應用程序發送發送網格模板。如何在使用sendgrid API的django中使用設計模板?

+0

你可能想嘗試一個模板的服務,如[ sendwithus](https://www.sendwithus.com)。他們支持Jinja模板(與Django幾乎相同),並且有一個[Python API客戶端](http://github.com/sendwithus/sendwithus_python)。 – bvanvugt

+0

@bvanvugt模板是指在sendgrid帳戶中創建的設計電子郵件模板,我必須通過電子郵件獲取併發送郵件。我也挖掘了sendgrid文檔,但沒有得到任何想法,如何使用。 – MegaBytes

回答

5

您可以使用SendGrid的模板引擎在SendGrid中存儲模板。然後在通過SendGrid API發送電子郵件時引用該模板ID,您可以使用see an example of that code in the sendgrid-python library

這是一個完整的例子,它採用了SendGrid API密鑰(你可以找到如何獲取設立reading this guide):

import sendgrid 

sg = sendgrid.SendGridClient('sendgrid_apikey') 

message = sendgrid.Mail() 
message.add_to('John Doe <[email protected]>') 
message.set_subject('Example') 
message.set_html('Body') 
message.set_text('Body') 
message.set_from('Doe John <[email protected]>') 

# This next section is all to do with Template Engine 

# You pass substitutions to your template like this 
message.add_substitution('-thing_to_sub-', 'Hello! I am in a template!') 

# Turn on the template option 
message.add_filter('templates', 'enable', '1') 

# Tell SendGrid which template to use 
message.add_filter('templates', 'template_id', 'TEMPLATE-ALPHA-NUMERIC-ID') 

# Get back a response and status 
status, msg = sg.send(message) 
+0

謝謝@MartynDavies,我做到了,郵件也發送給收件人ID。但該模板沒有顯示,而是在郵件中出現此錯誤。檢測到的錯誤是:模板錯誤:'http_get返回非20x響應:'404未找到'body ='{「error」:「未找到活動版本」}' – MegaBytes

+1

這意味着您沒有模板在您的SendGrid帳戶中設置了指定的ID,或者您製作的模板尚未激活。你必須確保你在Template Engine中有一個活動的模板,你可以在這裏看到概述:https://sendgrid.com/docs/User_Guide/Templates/index.html –

+0

非常感謝,現在完成了。這是我的錯誤,我沒有激活模板。再次感謝 – MegaBytes