2016-09-19 80 views
0

我正在創建一個SendGrid python腳本,它在執行時發送郵件。我遵循示例腳本here,但所有這些都生成了我的自定義SMTP API標頭。我如何真正發送電子郵件?謝謝!如何使用SMTP標題併發送SendGrid電子郵件?

我的代碼:

#sudo pip install smtpapi 

import time, json 

if __name__ == '__main__' and __package__ is None: 
    from os import sys, path 
    sys.path.append(path.dirname(path.dirname(path.abspath(__file__)))) 
    from smtpapi import SMTPAPIHeader 

from smtpapi import SMTPAPIHeader 
header = SMTPAPIHeader() 

header.add_to('[email protected]') 

# Substitutions 
header.set_substitutions({'key': ['value1', 'value2']}) 

# Sections 
header.set_sections({':name':'Michael', 'key2':'section2'}) 

# Filters 
header.add_filter('templates', 'enable', 1) 
header.add_filter('templates', 'template_id', 'a713d6a4-5c3e-4d4c-837f-ffe51b2a3cd2') 

# Scheduling Parameters 
header.set_send_at(int(time.time())) # must be a unix timestamp 

parsed = json.loads(header.json_string()) 
print json.dumps(parsed, indent=4, sort_keys=True) #display the SMTP API header json 

回答

0

這個庫似乎是生成SMTP API頭。你想使用這個庫用於發送電子郵件 - https://github.com/sendgrid/sendgrid-python

import sendgrid 
import os 
from sendgrid.helpers.mail import * 

sg = sendgrid.SendGridAPIClient(apikey=os.environ.get('SENDGRID_API_KEY')) 
from_email = Email("[email protected]") 
subject = "Hello World from the SendGrid Python Library!" 
to_email = Email("[email protected]") 
content = Content("text/plain", "Hello, Email!") 
mail = Mail(from_email, subject, to_email, content) 
response = sg.client.mail.send.post(request_body=mail.get()) 
print(response.status_code) 
print(response.body) 
print(response.headers) 

不過,我個人一直喜歡SMTP,因爲它讓我可以輕鬆地更換供應商是必要的。

+0

嗨@masnun,我試過使用官方Python庫,但是我有一個問題讓替換標籤與我的事務模板一起工作。在我的模板中,我使用了「:name」文本,並嘗試在json中使用替換標籤,但我遇到了問題。我的代碼在這裏:[link](http://pastebin.com/wF0UVHqK) –

相關問題