发送邮件

来源:互联网 发布:java覆盖 编辑:程序博客网 时间:2024/05/29 17:45

发送文本

import smtplib  from email.mime.text import MIMEText  mailto_list=[' '] mail_host="smtp.163.com"  #设置服务器mail_user=" "    #用户名mail_pass=" "   #口令 mail_postfix="163.com"  #发件箱的后缀def send_mail(to_list,sub,content):      me="hello"+"<"+mail_user+"@"+mail_postfix+">"      msg = MIMEText(content,_subtype='plain',_charset='gb2312')      msg['Subject'] = sub      msg['From'] = me      msg['To'] = ";".join(to_list)      try:          server = smtplib.SMTP()          server.connect(mail_host)          server.login(mail_user,mail_pass)          server.sendmail(me, to_list, msg.as_string())          server.close()          return True      except Exception, e:          print str(e)          return False  if __name__ == '__main__':      if send_mail(mailto_list,"hello","hello world!"):          print "发送成功"      else:          print "发送失败"

发送附件

from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport smtplib#创建一个带附件的实例msg = MIMEMultipart()#构造附件1att1 = MIMEText(open(r' ', 'rb').read(), 'base64', 'gb2312')att1["Content-Type"] = 'application/octet-stream'att1["Content-Disposition"] = 'attachment; filename="123.doc"'#这里的filename可以任意写,写什么名字,邮件中显示什么名字msg.attach(att1)#构造附件2att2 = MIMEText(open(r' ', 'rb').read(), 'base64', 'gb2312')att2["Content-Type"] = 'application/octet-stream'att2["Content-Disposition"] = 'attachment; filename="123.txt"'msg.attach(att2)#加邮件头msg['to'] = ' 'msg['from'] = ' 'msg['subject'] = ' '#发送邮件try:    server = smtplib.SMTP()    server.connect('smtp.163.com')    server.login(' ',' ')#XXX为用户名,XXXXX为密码    server.sendmail(msg['from'], msg['to'],msg.as_string())    server.quit()    print '发送成功'except Exception, e:      print str(e)

发送文本、附件、图片

from email.mime.image import MIMEImagefrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText  import smtplib  class SendEmail:    # 构造函数:初始化基本信息    def __init__(self, host, user, passwd):        lInfo = user.split("@")        self._user = user        self._account = lInfo[0]        self._me = self._account + "<" + self._user + ">"         server = smtplib.SMTP()          server.connect(host)          server.login(self._account, passwd)        self._server = server          # 发送文件或html邮件        def sendTxtMail(self, to_list, sub, content, subtype='html'):            # 如果发送的是文本邮件,则_subtype设置为plain        # 如果发送的是html邮件,则_subtype设置为html        msg = MIMEText(content, _subtype=subtype, _charset='utf-8')          msg['Subject'] = sub          msg['From'] = self._me          msg['To'] = ";".join(to_list)          try:            self._server.sendmail(self._me, to_list, msg.as_string())               return True          except Exception, e:              print str(e)              return False    # 发送带附件的文件或html邮件           def sendAttachMail(self, to_list, sub, content, subtype='html'):        # 创建一个带附件的实例        msg = MIMEMultipart()          # 增加附件1        att1 = MIMEText(open(r'D:\Data\data1.dbf','rb').read(), 'base64', 'utf-8')        att1["Content-Type"] = 'application/octet-stream'        # 这里的filename可以任意写,写什么名字,邮件中显示什么名字        att1["Content-Disposition"] = 'attachment; filename="main.py"'        msg.attach(att1)        # 增加附件2        att2 = MIMEText(open(r'C:\Python26\ExcerHtml\IP.txt','rb').read(), 'base64', 'utf-8')        att2["Content-Type"] = 'application/octet-stream'        att2["Content-Disposition"] = 'attachment; filename="main.txt"'        msg.attach(att2)        # 增加邮件内容        msg.attach(MIMEText(content, _subtype=subtype, _charset='utf-8'))        msg['Subject'] = sub          msg['From'] = self._me        msg['To'] = ";".join(to_list)        try:            self._server.sendmail(self._me, to_list, msg.as_string())               return True          except Exception, e:              print str(e)              return False     # 发送带附件的文件或html邮件           def sendImageMail(self, to_list, sub, content, subtype='html'):        # 创建一个带附件的实例        msg = MIMEMultipart()        # 增加邮件内容        msg.attach(MIMEText(content, _subtype=subtype, _charset='utf-8'))        # 增加图片附件        image = MIMEImage(open(r'F:\test\001.jpg','rb').read())        #附件列表中显示的文件名        image.add_header('Content-Disposition', 'attachment;filename=p.jpg')             msg.attach(image)          msg['Subject'] = sub          msg['From'] = self._me        msg['To'] = ";".join(to_list)        try:            self._server.sendmail(self._me, to_list, msg.as_string())               return True          except Exception, e:              print str(e)              return False    # 析构函数:释放资源      def __del__(self):        self._server.quit()        self._server.close()mailto_list = [' '] mail = SendEmail('smtp.163.com', ' ', ' ')if mail.sendTxtMail(mailto_list, "测试邮件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):      print "发送成功"  else:      print "发送失败"if mail.sendAttachMail(mailto_list, "测试邮件-带两个附件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):      print "发送成功"  else:      print "发送失败"if mail.sendImageMail(mailto_list, "测试邮件-带一个图片的附件", "hello world!<br><br><h1>你好,发送文本文件测试<h1>"):      print "发送成功"  else:      print "发送失败"
0 0