smtplib (Python)
リンク:smtplib -- SMTPプロトコルクライアント
リンク:smtplib -- SMTP protocol client
最近、Pythonのsmtplibを使う機会があったので、気がついたことをメモ
1.使い方は簡単で
import smtplib
s = smtplib.SMTP('localhost')
s.sendmail(<from>,<to>,<msg>)
でメールを送信することが出来る。
# もちろん、このスクリプトはSMTPが稼働している環境で実行する必要あり。
2.メソッド「sendmail」の宛先<to>に複数の宛先を指定したい場合は、リスト型のデータ形式を予め組み立てておく必要がある。
# ここで、単なるカンマやセミコロン区切りの文字列を設定した場合、最初の宛先のみにメールが送信される。
3.CcやBccの宛先も、メソッド「sendmail」の宛先<to>にリスト型データの要素として含まれている必要がある。
# もちろん、CcやBccは3番目の引数で渡されるMIMEメッセージの中でヘッダとして含まれている必要がある
4.送信メッセージ<msg>は予めMIMEを組み立てておき、印刷形式を指定する。
MIMEメッセージの組み立てには
from email.MIMEMultipart import MIMEMultipart
msg = MIMEMultipart()
.....
といった記述が必要。
添付ファイルを付加する場合には、MIMEの組み立て方法に従って、順次追加しておけば良い
5.MIMEの組み立て後の項目の指定方法の具体的な形式は
s.sendmail(msg['From'], addrlist, msg.as_string())
となる。
●お探し物は見つかりましたか?まだの方は以下の検索をご利用下さい。
●当ブログのRSSフィードをお手持ちのRSSリーダーにご登録いただくと、エントリ追加時のみ更新通知が届くため、確認の手間が省けます。よろしければ、どうぞ。
| 固定リンク
「Python」カテゴリの記事
- Twiccoでコミュニティを作ってみた(2008.11.08)
- Python2.5系の脆弱性の件(2007.09.01)
- PythonでExcelファイル作成(2006.05.09)
- Python 2.5(2006.09.20)
- YouTubeの動画をコマンドラインで(2006.08.29)








コメント
こんにちは。
Bcc: する場合ですが、msg['Bcc'] = "someaddress@example.jp" などとするのは丁寧ですが、
必ずしも必要でなく、s.sendmail()の第2引数で To: や Cc: の宛先と一緒に Bcc: 宛先も書いておけばメイルとしては送られるようです。
こういう理解で良いのかな。(も)
投稿: moto | 2008/10/16 19:13
motoさん、
Bccをメールヘッダに含めずに送るという発想は無かったです。
でも、Bcc本来の目的(他人に知られずにコピーを送る)はそれでも達成出来るので、送信者本人が後で判らなくなるぐらいの不都合しかありませんね。
それはちょっと微妙な気もしますが...
投稿: Inetgate | 2008/10/17 07:57