首页 > 代码库 > Python发送邮件
Python发送邮件
Python2.3+默认自带smtplib模块,可以用此模块来模拟smtp客户端(如foxmail)实现邮件发送功能。
1.smtplib模块的常用类和方法
SMTP类定义:smtplib.SMTP([host[,port[,local_hostname[,timeout]]]]),作为SMTP的构造函数,功能是与smtp服务器建立连接,在连接成功后,就可以向服务器发送相关请求,比如登录、校验、发送、退出等。
- host参数为远程smtp主机地址,比如smtp.163.com。
- port参数为连接端口,默认为25。
- local_hostname的作用是在本地主机的FQDN(完整的域名)发送HELO/EHLO(标识用户身份)指令。
- timeout为连接或尝试在多少秒超时。
SMTP类具有以下方法:
- SMTP.connect([host[,port]]):连接远程smtp主机的方法,host为远程主机地址,port为远程主机smtp端口,默认为25。也可以直接使用host:port形式来表示,例如:SMTP.connect("smtp.163.com","25")。
- SMTP.login(user,password):远程smtp主机的校验方法,参数为用户名和密码。
- SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,tcpt_options]):实现邮件的发送功能,参数依次为发件人、收件人、邮件内容。
- SMTP.starttls([keyfile[,certfile]]):启用TLS(安全传输)模式,所有SMTP指令都将加密传输,例如使用gmail的smtp服务时需要启动此项才能正常发送邮件。如:SMTP.starttls()。
- SMTP.quit():断开smtp服务器的连接。
2.示例
这个示例用网易163邮箱向QQ邮箱发送了一封测试邮件。
1 #!/usr/bin/python 2 import smtplib 3 import string 4 5 HOST = "smtp.163.com" 6 SUBJECT = "Test email-2 from python" 7 FROM = "yourMail@163.com" 8 password = "yourPassword" 9 TO = "friend@qq.com"10 text = "Hello,this is a test mail!\t\rI love python!"11 BODY = string.join((12 "From: %s" % FROM,13 "To: %s" % TO,14 "Subject: %s" % SUBJECT,15 "",16 text17 ),"\r\n")18 server = smtplib.SMTP()19 server.connect(HOST,"25")20 server.starttls()21 server.login(FROM,password)22 server.sendmail(FROM,[TO],BODY)23 server.quit()
结果如下:
Python发送邮件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。