Ad
1: 2017-06-12 (月) 13:09:44 njf ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +Python2.x系でメールの送信を行うには、以下のようにsmtplibを使います。
 +また、emailライブラリを使ってヘッダーの作成や日本語のエンコードを行います。
 + # -*- coding: utf-8 -*-
 +
 + import smtplib
 + from email.MIMEText import MIMEText
 + from email.Header import Header
 + from email.Utils import formatdate
 +
 + from_address = 'fromadress@xxx.jp'
 + to_address  = 'toaddress@xxx.jp'
 +
 + charset = 'ISO-2022-JP'
 + subject = u'テスト'
 + text    = u'テストです'
 +
 + msg = MIMEText(text.encode(charset), 'plain', charset)
 + msg['Subject'] = Header(subject, charset)
 + msg['From'] = from_address
 + msg['To'] = to_address
 + msg['Date'] = formatdate(localtime=True)
 +
 + smtp = smtplib.SMTP('xxx.jp',587)
 + smtp.starttls()
 + smtp.login("yourid","yourpassword")
 + smtp.sendmail(from_address, to_address, msg.as_string())
 + smtp.close()
 +
 +「 smtplib.SMTP('xxx.jp',587)」の部分の「587」はポート番号です。
 +通常この番号が使われますが、サーバーによって変わる場合があります。
 +
 +「starttls」は暗号化通信を始めるメソッドで、「login」はサーバーへのログインを行います。
 +
 +古いシステムではメールの送信にログインや暗号化が必要ない場合もありますが、現在では迷惑メールの送信に利用されたりしないように、これらは必須となっています。
 +
 +Pythonでのメールの送信をネットで検索すると、「starttls」の前後で「ehlo」を実行しているサンプルコードよく見かけますが、実際には「starttls」や「login」メソッドでは、もし「ehlo」が実行されていなければ実行するという仕様になっているので、なくても送信可能です。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 545, today: 3, yesterday: 3
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF