2009年10月1日木曜日

メールを送信する

import smtplib
import email.mime.text

def send_mail(to, from_="", subject="", text=""):
    msg = email.mime.text.MIMEText(text)
    msg["Subject"] = subject
    msg["From"] = from_
    msg["To"] = to

    s = smtplib.SMTP("localhost")
    s.sendmail(from_, [to], msg.as_string())
    s.quit()

Gmailで送信する場合
ついでに、日本語のエンコーディングと日付のローカル化
# -*- coding: utf-8 -*-

import smtplib
import email.mime.text
import email.header
import email.utils

#引数subjectとtextは日本語が含まれているときはUnicodeで渡す
def send_mail_from_gmail(to, user, password, subject="", text="", encoding="ISO-2022-JP"):
    msg = email.mime.text.MIMEText(text.encode(encoding), "plain", encoding)
    msg["Date"] = email.utils.formatdate(localtime=True)
    msg["Subject"] = email.header.Header(subject, encoding)
    msg["From"] = user
    msg["To"] = to

    s = smtplib.SMTP()
    s.connect("smtp.gmail.com", 587)
    s.starttls()
    s.login(user, password)
    s.sendmail(user, [to], msg.as_string())
    s.close()

ついでにメールボックスの操作
import mailbox
import email.header

for msg in mailbox.Maildir("/home/yoshi/Maildir"):
    h = email.header.decode_header(msg["Subject"])[0]
    print h[0]
実行すると件名が表示される

詳細はドキュメントで

0 件のコメント:

コメントを投稿