Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1381290
  • 博文数量: 247
  • 博客积分: 10147
  • 博客等级: 上将
  • 技术积分: 2776
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-24 15:18
文章分类

全部博文(247)

文章存档

2013年(11)

2012年(3)

2011年(20)

2010年(35)

2009年(91)

2008年(87)

我的朋友

分类: Python/Ruby

2009-09-01 13:52:32

import os, sys, string
import smtplib
import base64

# 邮件服务器地址
mailserver = "smtp.163.com"
# 邮件用户名
username = "xxx
"
# 密码
password = "xxx"
# smtp会话过程中的mail from地址
from_addr = "xxx
"
# smtp会话过程中的rcpt to地址
to_addr = "xxxxxxxx
"
# 信件内容
header = "From: "+from_addr+"\r\nTo: "+to_addr+"\r\nSubject: Test\r\n\r\n"
msg = "my python test mail"

svr = smtplib.SMTP(mailserver)
# 设置为调试模式,就是在会话过程中会有输出信息
svr.set_debuglevel(1)
# ehlo命令,docmd方法包括了获取对方服务器返回信息
svr.docmd("EHLO server")
# 加密信道
svr.starttls()
# auth login 命令
svr.docmd("AUTH LOGIN")
# 发送用户名,是base64编码过的,用send发送的,所以要用getreply获取返回信息
svr.send(base64.encodestring(username))
svr.getreply()
# 发送密码
svr.send(base64.encodestring(password))
svr.getreply()
# mail from, 发送邮件发送者
svr.docmd("MAIL FROM: <%s>" % from_addr)
# rcpt to, 邮件接收者
svr.docmd("RCPT TO: <%s>" % to_addr)
# data命令,开始发送数据
svr.docmd("DATA")
# 发送头
svr.send(header)
# 发送正文数据
svr.send(msg)
# 比如以 . 作为正文发送结束的标记
svr.send("\r\n.\r\n")
svr.getreply()
# 发送结束,退出
svr.quit()

 
 
--------------------------------------
 
 
#data 指令表示邮件内容  
print smtp.docmd('data')  
print smtp.docmd('''''from:  
to:  
subject: subject 
email body 

''') 
smtp.quit() 
 

 

阅读(2031) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~