2016-11-22 7 views
2

私はsendgrid(https://github.com/sendgrid/sendgrid-python)のpythonモジュールを使用してトランザクション電子メールを送信しています。私はスケジュールされた時間に電子メールを送信するための構文の助けが必要です。 一般的なsendgridのドキュメントでは、 "{" send_at ":1409348513}"としてjsonを変更するように求められています。私はこの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 repoの代わりに投稿することをお勧めします – bwest

答えて

3

send_atは、personalizationsオブジェクトのコンポーネントです。そのレベルで定義できるため、各受信者/パーソナライゼーションセットの個別の送信時間を設定できます。

これが不要な場合は、at the top mail levelに設定することもできます。

+1

ありがとう、これは私が探していたものです – Sharad

+0

は、動作するコードを表示できますか?私はスケジューリングと非常に似たようなコードを実行していません。 – killerbarney

0

が見えることthis例を以下によります。必要なすべての未加工フィールドを指定することができます。

+0

ありがとうございますが、これはまったく別のアプローチです。それはjsonで直接それを設定しています。私はいくつかの直感的な機能があるべきだと思っていたmail.send_at()のようなもの – Sharad

関連する問題