やってみた。
mailsend.py
#!/usr/bin/env python
#coding: utf-8
import sys
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate
argvs = sys.argv
if __name__ == "__main__":
from_address = "送信元メールアドレス"
to_address = unicode(argvs[1], "utf-8")
cc_address = "送信先メールアドレス"
to_name1 = unicode(argvs[2], "utf-8")
to_name2 = unicode(argvs[3], "utf-8")
atai1 = unicode(argvs[4], "utf-8")
atai2 = unicode(argvs[5], "utf-8")
charset = "ISO-2022-JP"
subject = u"メール件名です。"
text = to_name1 + u''' ''' + to_name2 + u''' 様
文章です。
改行も可能です。
''' + atai1 + u'''\t''' + atai2 + u'''
複数の差し込みも可能です。'''
msg = MIMEText(text.encode(charset),"plain",charset)
msg["Subject"] = Header(subject,charset)
msg["From"] = from_address
msg["To"] = to_address
msg["Cc"] = cc_address
msg["Date"] = formatdate(localtime=True)
smtp = smtplib.SMTP("メールサーバアドレス")
smtp.sendmail(from_address,[to_address,cc_address],msg.as_string())
smtp.close()
こんな感じ。今回は、宛名を2つに分ける必要があったため、2つ付いているだけ。
途中の差し込みリストもさらに2つほど渡してやりたかった。
送信リスト
メールアドレス,名前1,名前2,値1,値2
メールアドレス,名前1,名前2,値1,値2
メールアドレス,名前1,名前2,値1,値2
・・・
コマンド実行
awk -F"," '{ print "./mailsend.py",$1,$2,$3,$4,$5 }' | /bin/bash
こんな感じ