⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jfemail.py

📁 快速编程之懒人发邮件 讲的是网络通信的相关知识
💻 PY
字号:
#!d:\Python\python.exe
#-*- coding: gb2312 -*-
####Author:jokerfox#######
####QQ:55708051###########
####Email:jokerfox@qq.com#
import smtplib,mimetypes
from email import Encoders
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
import sys
import os
###以下几个数据参数 根据自己的需要设置好
SMTP_HOST='smtp.qq.com'	#邮件服务器的地址
FROM_EMAIL='jokerfox@qq.com' #发送方的Email地址
TO_EMAIL='jokerfox@qq.com'  #接收方的Email地址
USER='jokerfox'  #  发送邮件时需要认证的用户名
PASSWORD='123456'#  以及密码
SUBJECT='你好'#邮件的标题
CONTENT='大家好才是真的好'
DEBUGLEVEL=0  ##设置调试级别
#####参数设置完毕#############

class jfEmail:

    ###构造函数
    ###Host->邮件服务器的地址
    ###From->发送方的Email地址
    ###To->接收方的Email地址
    ###Subject->邮件的标题
    def __init__(self,Host=None,User=None,Pwd=None,From=None,To=None,Subject=None,Content=None,Debuglevel=0):
        self.msg={}
        self.msg=MIMEMultipart()
        
        self.host=Host
        self.FromEmail=From
        self.ToEmail=To
        self.subject=Subject
        self.debuglevel=Debuglevel
        self.content=Content
        self.user=User
        self.pwd=Pwd
    ##设置调试级别 level=1则显示调试结果
    def setDebuglevel(self,level):
        if (level==1):
            self.debuglevel=1
        else:
            self.debuglevel=0
    ##增加一个附件
    def addAttachment(self,_filepath):
        m=self._getMINEAttachment(_filepath)
        if (m!=None):
            self.msg.attach(m)
        else:
            return None
    ###增加附件的操作
    def _getMINEAttachment(self,_filepath):
        try:
            fp=open(_filepath,"rb")
            ctype,encoding=mimetypes.guess_type(_filepath)
            if ctype is None or encoding is not None:
                ctype = 'application/octet-stream'
            maintype,subtype=ctype.split('/',1)
            m = MIMEBase(maintype,subtype)
            m.set_payload(fp.read())
            fp.close()
            Encoders.encode_base64(m)
            m.add_header('Content-disposition','attachment',filename=_filepath)
            return m
            
        except:
            return None
    #设置邮件标题
    def setSubject(self,_subject):
        self.subject=_subject
        
    #设置邮件的接收方    
    def setToEmail(self,_To):
        self.ToEmail=_To
    #设置邮件的发送方
    def setFromEmail(self,_From):
        self.FromEmail=_From
    ##设置邮件服务器地址
    def setHost(self,_host):
        self.host=_host
	## 设置发送邮件的文本内容
    def setContent(self,_content):
        self.content=_content
        
	##设置SMTP 认证用户名
    def setUser(self,_user):
        self.user=_user
	##设置SMTP 认证密码
    def setPwd(self,_pwd):
        self.pwd=_pwd
	##发送带附件的邮件
    def SendMail(self):
        if (self.host==None):
            print "SMTP Host is Empty!"
            self.doExit()
        if (self.user==None or self.pwd==None):
            print "User or Password is empty!"
            self.doExit()
        if (self.subject==None):
            self.subject="fishfox"
        if (self.FromEmail==None):
            print "Sender Email Address is Empty!"
            self.doExit()
        if (self.ToEmail==None):
            print "Receiver Email Address is Empty!"
            self.doExit()
        self.msg['subject']=self.subject
        self.msg['To']=self.ToEmail
        self.msg['From']=self.FromEmail
        txt=MIMEText(self.content,_charset='gb2312')
        self.msg.attach(txt)
        s=smtplib.SMTP(self.host)
        try:
            s.login(self.user,self.pwd)
        except:
            print "Login Failed!"
            self.doExit()
        if (self.debuglevel==1):
            s.set_debuglevel(1)
        try:
            s.sendmail(self.msg['From'], self.msg['To'], self.msg.as_string())
        except:
            print "Error!"
            self.doExit()
        
     ##退出   
    def doExit(self):
		#`pause`
        if (raw_input('按回车键键退出')):
            pass
        sys.exit()
    
        
        
def main():
    filepath=raw_input('请输入要发送的附件本地路径:')
    if (not os.path.exists(filepath)):
        print "文件不存在!!"
        raw_input("按回车键键退出!")
        sys.exit()
    
    print "开始发送邮件......"
    #myMail=jfEmail(Host=SMTP_HOST,To=TO_EMAIL,From=FROM_EMAIL,Subject=SUBJECT)
    myMail=jfEmail()
    myMail.setHost(SMTP_HOST)
    myMail.setToEmail(TO_EMAIL)
    myMail.setFromEmail(FROM_EMAIL)
    myMail.setSubject(SUBJECT)
    myMail.setDebuglevel(DEBUGLEVEL)
    myMail.setContent(CONTENT)
    myMail.addAttachment(filepath)
    myMail.setUser(USER)
    myMail.setPwd(PASSWORD)
    myMail.SendMail()
    print "邮件发送成功!"
    if (raw_input('按回车键键退出')):
        pass

if __name__=="__main__":   
    main()
    #exec('pause')




    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -