码迷,mamicode.com
首页 > 编程语言 > 详细

python 发送邮件

时间:2015-12-17 12:10:18      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

SMTP发送邮件

简单的,参见http://blog.csdn.net/handsomekang/article/details/9785411

import smtplib
from email.mime.text import MIMEText
_user = "" #填写发件人用户名
_pwd  = "" #密码
_to   = "" #收件人地址

#使用MIMEText构造符合smtp协议的header及body
msg = MIMEText("hello,world")
msg["Subject"] = "Test"
msg["From"]    = _user
msg["To"]      = _to

s = smtplib.SMTP("smtp.qq.com", timeout=30)#连接smtp邮件服务器,端口默认是25
s.login(_user, _pwd)#登陆服务器
s.sendmail(_user, _to, msg.as_string())#发送邮件
s.close()

需要注意的是,各个邮箱的smtp服务器是不一样的。主要依据发件人所在的邮箱而定
#qq
smtp.qq.com
#163
smtp.163.com
#gmail
smtp.gmail.com
#126
smtp.126.com

 

Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

下面一个例子可以打印出,且规范发送的内容

# -*- coding: utf-8 -*-
import sys

reload(sys)
sys.setdefaultencoding(utf-8)
"""
__author__="tina"
__mtime__ = ‘2015/12/17  10:22‘
"""
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, utf-8).encode(),addr.encode(utf-8) if isinstance(addr, unicode) else addr))
#自己填写对应地址
from_addr = "" 
password = ""
to_addr = ""
smtp_server = "smtp.163.com"

msg = MIMEText(hello,world,plain,utf-8)
msg[From] = _format_addr(uPython爱好者 <%s> % from_addr)
msg[To] = _format_addr(u管理员 <%s> % to_addr)
msg[Subject] = Header(u来自SMTP的问候……, utf-8).encode()
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)  #打印和SMTP服务器交互的所有信息
server.login(from_addr, password)  #登录
server.sendmail(from_addr, [to_addr], msg.as_string())  #SMTP可以一次发给多人,所以传入一个list
server.quit()

 

python 发送邮件

标签:

原文地址:http://www.cnblogs.com/tina-smile/p/5053292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!