一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

python使用smtplib发送邮件的程序

时间:2015-03-03 编辑:简简单单 来源:一聚教程网


最近看到了一个防止DDOS的python脚本,不过其邮件通知功能一直不成功,而最近又在学习python 。打开源码查看,发现有调用smtplib 进行邮件发送 。不过因为里面有调用配置文件参数,略有点复杂。先从网上查了查smtplib的用法 。通过smtplib进行gmail发送代码示
例:

 代码如下 复制代码

#!/usr/bin/env python
import smtplib
import sys
import email.mime.text
# my test mail
mail_username='361way@gmail.com'
mail_password='test'
from_addr = mail_username
to_addrs=('test@361way.com')
# HOST & PORT
HOST = 'smtp.gmail.com'
PORT = 25
# Create SMTP Object
smtp = smtplib.SMTP()
print 'connecting ...'
# show the debug log
smtp.set_debuglevel(1)
# connet
try:
print smtp.connect(HOST,PORT)
except:
print 'CONNECT ERROR ****'
# gmail uses ssl
smtp.starttls()
# login with username & password
try:
print 'loginning ...'
smtp.login(mail_username,mail_password)
except:
print 'LOGIN ERROR ****'
# fill content with MIMEText's object
msg = email.mime.text.MIMEText('Hi ,this is a test mail')
msg['From'] = from_addr
msg['To'] = ';'.join(to_addrs)
msg['Subject']='hello , today is a special day'
print msg.as_string()
smtp.sendmail(from_addr,to_addrs,msg.as_string())
smtp.quit()

代码挺简单,使用时,只需要把用户、密码、收件人、主题及内容更换即可。

smtp协议的基本命令包括:
HELO 向服务器标识用户身份
MAIL 初始化邮件传输 mail from:
RCPT 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to:
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应OK
QUIT 结束会话
RSET 重置会话,当前传输被取消
MAIL FROM 指定发送者地址
RCPT TO 指明的接收者地址

热门栏目