2016-11-22 143 views
2

我使用sendgrid的python模塊(https://github.com/sendgrid/sendgrid-python)發送交易電子郵件。我需要在預定時間發送電子郵件的語法方面的幫助。 一般sendgrid文檔要求修改json爲「{」send_at「:1409348513}」。我相信這個json不能在sendgrid-python中直接訪問。我需要語法來做與python庫等價的事情。使用sendgrid計劃電子郵件python

我現在的代碼相當於下面複製的代碼。如果有人能夠建議如何修改該代碼以在特定時間安排它,那將是非常好的,例如, datetime.dateime.now()+ datetime.timedelta(天= 1)

import sendgrid  
from sendgrid.helpers.mail import Email, Content, Substitution, Mail 
import urllib2 as urllib 

def send_email_custom():  
    sg = sendgrid.SendGridAPIClient(apikey=myApiKey)   
    from_email = Email(sendEmail) 
    to_email = Email(custEmail) 
    reply_to_email = Email(receiveEmail) 
    content = Content("text/html", "Introduction") 
    mail = Mail(from_email, subject="Hi!", to_email=to_email, content=content) 
    mail.personalizations[0].add_substitution(Substitution("_firstName_", firstName)) 
    mail.set_template_id(templateId) 
    try: 
     response = sg.client.mail.send.post(request_body=mail.get()) 
    except urllib.HTTPError as e: 
     print(e.read()) 
     return False 
    if response.status_code >=200 and response.status_code < 300: 
     return True 
    else: 
     return False 
+0

我會建議發佈此github回購,而不是SO – bwest

回答

3

send_atpersonalizations對象的組件,因此您可以在該級別定義它,從而允許您爲每個收件人/個性化設置設置不同的發送時間。

如果你不需要,你也可以設置它at the top mail level

+1

謝謝,這就是我正在尋找的 – Sharad

+0

你能顯示可用的代碼嗎?我一直在運行非常類似的代碼與調度不工作。 – killerbarney

0

看起來你應該能夠做到這一點通過以下this例子。您可以指定所有您需要的原始字段。

+0

謝謝,但這是一個完全不同的方法。它直接將它填充到json中。我在想,應該有一些直觀的功能,如mail.send_at()類的東西 – Sharad