LoginSignup
11
11

More than 5 years have passed since last update.

標準入力で受け取ったりとかコマンドライン操作からGmailの送信

Last updated at Posted at 2013-09-13

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
11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11