Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sendgrid python计划电子邮件_Python_Python 2.7_Sendgrid_Email - Fatal编程技术网

使用sendgrid python计划电子邮件

使用sendgrid python计划电子邮件,python,python-2.7,sendgrid,email,Python,Python 2.7,Sendgrid,Email,我正在使用sendgrid()的python模块发送事务性电子邮件。我需要有关语法的帮助,以便在预定时间发送电子邮件。 通用sendgrid文档要求将json修改为“{”send_at:1409348513}”。我相信这个json在sendgrid python中是无法直接访问的。我需要使用python库执行等效操作的语法 我当前的代码与下面复制的代码相同。如果有人能建议如何修改此代码以将其安排在特定时间,例如datetime.dateime.now()+datetime.timedelta(d

我正在使用sendgrid()的python模块发送事务性电子邮件。我需要有关语法的帮助,以便在预定时间发送电子邮件。 通用sendgrid文档要求将json修改为“{”send_at:1409348513}”。我相信这个json在sendgrid python中是无法直接访问的。我需要使用python库执行等效操作的语法

我当前的代码与下面复制的代码相同。如果有人能建议如何修改此代码以将其安排在特定时间,例如datetime.dateime.now()+datetime.timedelta(days=1),那就太好了

导入sendgrid
从sendgrid.helpers.mail导入电子邮件、内容、替换、邮件
将urllib2导入为urllib
def send_email_custom():
sg=sendgrid.SendGridAPIClient(apikey=myApiKey)
from_email=电子邮件(sendEmail)
收件人电子邮件=电子邮件(客户电子邮件)
回复电子邮件=电子邮件(接收电子邮件)
内容=内容(“文本/html”、“简介”)
邮件=邮件(从电子邮件,主题=“嗨!”,到电子邮件=到电子邮件,内容=内容)
mail.personalizations[0]。添加替换(替换(“\u firstName”,firstName))
mail.set\u template\u id(templateId)
尝试:
response=sg.client.mail.send.post(request\u body=mail.get())
除了urllib.HTTPError作为e:
打印(如read())
返回错误
如果response.status\u code>=200且response.status\u code<300:
返回真值
其他:
返回错误

看起来您应该可以通过以下示例来实现这一点。您可以指定所需的所有原始字段。

personalizations
对象的一个组件,因此您可以在该级别定义它,允许您为每个收件人/个性化设置设置不同的发送时间


如果您不需要,也可以设置。

谢谢,但这是一种完全不同的方法。它直接在json中填充它。我想应该有一些直观的功能,比如mail.send_at()之类的东西我建议把它发布在github repo上,而不是SOThanks上,这就是我想要的,你能显示有效的代码吗?我一直在运行非常类似的代码,但调度不起作用。
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