SendGridのWebAPIではto_emails
というパラメータがあるが、これはToを複数追加するだけで、メールがTo単位で1件ずつ送信されるわけではない。
To毎にメールをバラして送信したい場合は、smtpapiを利用するようだ。Web API経由では出来なかった。
smtpapiを入れる
このライブラリはSendGridのメールサーバに送るためのヘッダー文字列を作るだけのライブラリ。
実際にメールを送る時は、PythonでSMTPメール送信をするのにおなじみsmtplib
を使う。
サンプルコード
import os import smtplib from email.mime.text import MIMEText # SMTP認証情報 host = 'smtp.sendgrid.net' port = 587 user = 'apikey' passwd = os.environ.get( 'SENDGRID_API_KEY' ) server = smtplib.SMTP( host, port ) server.starttls() server.login( user, passwd ) # HEADER from smtpapi import SMTPAPIHeader header = SMTPAPIHeader() header.set_tos(to) # メール本文 message = MIMEText(content, 'html') message['From'] = _from message['To'] = ",".join(to) message['Subject'] = subject message['X-SMTPAPI'] = header.json_string() # メール送信 server.sendmail(_from, to, message.as_string().encode('utf-8') ) server.quit()