python email

来源:互联网 发布:mac os sierra怎么升级 编辑:程序博客网 时间:2024/05/22 21:30

email简单介绍

SMTP协议只能用来发送邮件,默认端口号为25

POP3 (Post Office Protocol) &IMAP (Internet Message Access Protocol)
POP协议和IMAP协议是用于邮件接收的最常见的两种协议,POP3协议的默认TCP端口号是110IMAP协议的默认TCP端口号是143

MIME (Multipurpose Internet Mail Extensions) (RFC 1341)
MIME扩展邮件的格式,用以支持非ASCII编码的文本、非文本附件以及包含多个部分 (multi-part) 的邮件体等。


#!/usr/bin/env python  # -*- coding: UTF-8 -*-  # ithomer.net  import sys  import os  from email.mime.multipart import MIMEMultipart  from email.mime.base import MIMEBase  from email.mime.text import MIMEText  from email.utils import COMMASPACE,formatdate  from email import encoders  server = {        'name' : 'smtp.126.com',        'user' : '***@126.com',        'passwd' : 'pwd'       }      def send_mail(server, fro, to, subject, text, files=[]):       assert type(server) == dict       assert type(to) == list       assert type(files) == list       msg = MIMEMultipart()       msg['From'] = fro       msg['Subject'] = subject       msg['To'] = COMMASPACE.join(to) #COMMASPACE==', '       msg['Date'] = formatdate(localtime=True)       msg.attach(MIMEText(text))       for file in files:           part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data           part.set_payload(open(file, 'rb').read())           encoders.encode_base64(part)           part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))           msg.attach(part)       import smtplib       smtp = smtplib.SMTP(server['name'])       smtp.login(server['user'], server['passwd'])       smtp.sendmail(fro, to, msg.as_string())       smtp.close()            print("send email success!")  def printServer():      name = server['name']      user = server['user']      passwd = server['passwd']            print(name + ', ' + user + ', ' + passwd)   # main  if __name__ == "__main__":      to = ["***@gmail.com","***@126.com"]      #     to.append(str())            files = []      for i in range(5):          filename = "file_" + str(i)          f = open(filename, 'w+')          f.write("test that. " + str(i))          f.close()          files.append(filename)      print files      send_mail(server, server['user'], to, 'test python email', 'test from ***', files) 


0 0
原创粉丝点击