http://blog.livedoor.jp/vine_user/archives/51575120.html
全面的に上記サイト様よりいただいております。
mail.py
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate
user = 'example@gmail.com'
pswd = 'password'
print '送信先を入力して下さい。enterキーで確定になります。'
to_addr = raw_input()
print '件名を入れて下さい。enterキーは件名確定になります。'
title = raw_input()
print '本文を入れて下さい。enterキーは本文確定で送信になります。'
body = raw_input()
def create_message(user, to_addr, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = user
msg['To'] = to_addr
msg['Date'] = formatdate()
return msg
def send_via_gmail(user, to_addr, msg):
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(user, pswd)
s.sendmail(user, [to_addr], msg.as_string())
s.close()
if __name__ == '__main__':
msg = create_message(user, to_addr, title, body)
send_via_gmail(user, to_addr, msg)
今回はコマンドラインから受け取る風にですが、何か他の事をキッカケとして本文など渡せばメール送信用スクリプトとして使い回しが効く、、といいなぁと。。
文字コードで事故など怖いですが検証しておりませぬ。
私が想定した使用方法ならログインしてるアカウントままFromで差支えがなかったな、と。
普段と違うgmailの送信方法、ログイン方法なので初回は必ず失敗するので
http://qiita.com/hilotter/items/ffa5a7d14f6d50c81dfa
上記様をご参考にすすめてくださいませ。
別記事で書いてたら流石にどうでも良すぎて心が折れたので追記という形で、、、、
特定に人にフォローされたら友人に自慢するメールを送るというものであります。
フォローされたらというのは一例としているだけですので、TLを読み込んで特定の単語を含む発言が合ったとか、リプライされたときに自分宛にメールを送るとかも出来ますが公式でそういう機能がありますよね。
mayu.py
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate
import tweepy
import oat
## ↑は私的にtwitterのOAuthトークンを別に置いているものです。
## gmailのパスなども別保管したり平文でない方法にしなければですが、、、
user = 'example@gmail.com'
pswd = 'password'
to_addr = '友人のメールアドレス'
title = '件名'
body = '本文'
def create_message(user, to_addr, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = user
msg['To'] = to_addr
msg['Date'] = formatdate()
return msg
def send_via_gmail(user, to_addr, msg):
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(user, pswd)
s.sendmail(user, [to_addr], msg.as_string())
s.close()
if __name__ == '__main__':
# 今回ではフォロアー数5000までの_ids取得なので、実行の前後が5000未満である必要があります。
# 例のuser_idsの611447337はtwitterの発言が度々とある超巨大掲示板で話題になる希美まゆさんです。
chk = oat.api.followers_ids(twi)
if 611447337 in chk:
msg = create_message(user, to_addr, title, body)
send_via_gmail(user, to_addr, msg)
else:
pass