发送文本格式邮件,默认使用25端口
import smtplib from email.mime.text import MIMEText from email.header import Header smtp_srv = 'mail.xx.com' from_addr = 'ld@xx.com' #to_addr = ('l1@xx.com','ld@xx.com') to_addr = ('l1@xx.com') cc_addr = 'l1@xx.com' password = 'mypass' subject = 'pp test' msg_content = '你好 错误记录 asdfl asdf' msg = MIMEText(msg_content,'plain','utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['from_addr'] = from_addr msg['Cc'] = cc_addr msg['To'] = ''.join(to_addr) smtp = smtplib.SMTP() smtp.connect(smtp_srv) smtp.login(from_addr,password) #smtp.set_debuglevel(1) #显示邮件发送的详细信息 smtp.sendmail(from_addr,to_addr,msg.as_string()) smtp.quit()
587端口发送邮件:
import smtplib from email.mime.text import MIMEText from email.header import Header smtp_srv = '10.160.31.32' from_addr = 'sysuser@xin.com' login_addr = 'sysuser' to_addr = ('lll@xin.com') password = 'pass' subject = 'pytest5872222teaea' msg_content = 'tt' msg = MIMEText(msg_content,'plain','utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['from_addr'] = from_addr msg['To'] = ''.join(to_addr) smtp = smtplib.SMTP() smtp.connect(smtp_srv,587) # smtp.starttls() # smtp.login(login_addr,password) #如果SMTP登录验证失败,则其名称去掉@xin.com域名部分 smtp.set_debuglevel(1) smtp.sendmail(from_addr,to_addr,msg.as_string()) smtp.quit()
发送正文带有图片的邮件:
import os,sys,datetime,time import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage smtp_srv = 'mail.x.com' from_addr = 'ITS@x.com' to_addr = ['ly@x.com'] cc_addr = 'IT@x.com' to_addr2 = ['IT@x.com'] #由于抄送不起作用,所以将邮件重新发送一次 password = r'password' subject = 'Hello' msg = MIMEMultipart('related') msg['Subject'] = 'test message' msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img alt="" src="cid:image1" />good!','html','utf-8') msg.attach(msgText) fp = open('D:\pyweb\uxin.jpg', 'rb') msgImage = MIMEImage(fp.read()) fp.close() #在正文里添加图片 msgImage.add_header('Content-ID', 'image1') msg.attach(msgImage) msg['from_addr'] = from_addr msg['To'] = ''.join(to_addr) # print msg_content smtp = smtplib.SMTP() smtp.connect(smtp_srv,587) smtp.starttls() smtp.login(from_addr,password) #smtp.set_debuglevel(1) #显示邮件发送的详细信息 smtp.sendmail(from_addr,to_addr2,msg.as_string()) smtp.quit()
发邮件时显示发件人的中文名称:
import smtplib from email import encoders from email.mime.text import MIMEText from email.header import Header from email.utils import parseaddr, formataddr smtp_srv = 'smtp.gmail.com' from_addr = 'u@gmail.com' to_addr = ('l@x.com') password = 'Y' subject = '您的帐号' msg_content = '您好, 您的密码' msg = MIMEText(msg_content,'plain','utf-8') msg['Subject'] = Header(subject, 'utf-8') #msg['from_addr'] = from_addr msg['From'] = formataddr(["管理员", from_addr]) #显示发件人的中文名称 msg['To'] = ''.join(to_addr) smtp = smtplib.SMTP() smtp.connect(smtp_srv,587) # smtp.ehlo() smtp.starttls() # login_addr = from_addr #.split('@')[0] try: smtp.login(login_addr,password) smtp.set_debuglevel(1) smtp.sendmail(from_addr,to_addr,msg.as_string()) smtp.quit() except Exception,e: print e
发送多个图片:
# -*- coding: UTF-8 -*- import time,os,datetime,sys,smtplib,csv,glob from email import encoders from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage def sendmail(auser,buser,cuser): smtp_srv = 'mail.x.com' from_addr = '11@x.com' to_addr = ('%s@x.com' %(auser)) password = 'y' subject = '报告' smtp = smtplib.SMTP() smtp.connect(smtp_srv,587) msg = MIMEMultipart('related') msg['Subject'] = Header(subject, 'utf-8') msg_content = '<p>您好,<br>员工%s(%s)访问了网站! </p>'%(buser,cuser) mail_jpg = '' fnumber = len(glob.glob(pathname='E:\Python\imgs\i*.*')) #计算图片目录下图片数量 for i in range(fnumber): mail_jpg += '<img alt="" src="cid:image%d" /><br>' %(i+1) msg.attach(MIMEText(msg_content + mail_jpg, 'html', 'utf-8')) i=0 for fpathe,dirs,fs in os.walk('E:\Python\imgs\i'): #遍历图片所在目录 for f in fs: i=i+1 img_name = os.path.join(fpathe,f) with open(img_name, 'rb') as fp: print(img_name) img_data = fp.read() msg_image = MIMEImage(img_data) msg_image.add_header('Content-ID', '<image%d>' %(i)) msg.attach(msg_image) msg['Subject'] = Header(subject, 'utf-8') msg['from_addr'] = from_addr msg['To'] = ''.join(to_addr) login_addr = from_addr.split('@')[0] smtp.login(login_addr,password) smtp.set_debuglevel(1) smtp.sendmail(from_addr,to_addr,msg.as_string()) smtp.quit() count=0 with open("E:\Python\imgs\aa.csv") as flist: flists = csv.reader(flist) for line in flists: user0 = line[0] user1 = line[1] user2 = line[2] count = count + 1 #url = line[1] sendmail(user2,user0,user1) print(user0,user1,count) time.sleep(3)