使用python通过ssl发送邮件

#!/usr/bin/env python
  #-*-coding:utf-8-*-
  
  import socket
  import smtplib
  import base64
  from email.MIMEText import MIMEText
  from email import Utils
  
  #用于SSL的smtplib.SMTP的子类,只实现了最基本的功能,有待完善
  class SMTP_SSL(smtplib.SMTP):
   def __init__(self,host="",port=465,local_hostname=None,key=None,cert=None):
   self.cert=cert
   self.key=key
   smtplib.SMTP.__init__(self,host,port,local_hostname)
  
   def connect(self,host="localhost",port=465):
   #if self.debuglevel>0:print >>stderr,"connect: ",(host,port)
   self.sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
   self.sock.connect((host,port))
   sslobj=socket.ssl(self.sock,self.key,self.cert)
  
   self.sock=smtplib.SSLFakeSocket(self.sock,sslobj)
   self.file=smtplib.SSLFakeFile(sslobj)
   msg="getaddrinfo returns an empty list"
   code,msg=self.getreply()
   if self.debuglevel>0:print >>stderr,"connect:",msg
   return (code,msg)
  
  if __name__=="__main__":
   fromaddr="test@test.com"#发送端地址可以随便写一个
   toaddr="destination"#此处是收件人
   message="""Hello!
  
  
   This is a test message.这是一个测试
   """
   msg=MIMEText(message)#这一个程序段是构造一个消息头(header)
   msg["To"]=toaddr
   msg["From"]=fromaddr
   msg["Subject"]="test message"
   msg["Date"]=Utils.formatdate(localtime=1)
   msg["Message-ID"]=Utils.make_msgid()
  
   username="username"#用于认证的用户名
   password="password"#用于认证的密码
   host="smtpserver"#用于发送邮件的服务器
  
   smtp=SMTP_SSL(host,port=465,local_hostname=None,key=None,cert=None)#注意端口号是465,因为是SSL连接
   smtp.set_debuglevel(1)
   smtp.login(username,password)#认证
   smtp.sendmail(fromaddr,toaddr,str(msg))
   smtp.quit()
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值