- 1 #!/usr/bin/env python
- 2 # -*- coding:utf-8 -*-
- 3
- 4 import smtplib
- 5 fromemail.mime.multipartimport MIMEMultipart
- 6 fromemail.mime.textimport MIMEText
- 7 fromemail.mime.applicationimport MIMEApplication
- 8
- 9 class Mailer(object):
- 10 def __init__(self,maillist,mailtitle,mailcontent):
- 11self.mail_list = maillist
- 12self.mail_title = mailtitle
- 13self.mail_content = mailcontent
- 14
- 15self.mail_host ="smtp.163.com"
- 16self.mail_user ="your email name"
- 17self.mail_pass ="your email password"
- 18self.mail_postfix ="163.com"
- 19
- 20 def sendMail(self):
- 21
- 22me = self.mail_user +"<"+ self.mail_user +"@"+ self.mail_postfix +">"
- 23msg = MIMEMultipart()
- 24msg['Subject'] ='Python mail Test'
- 25msg['From'] = me
- 26msg['To'] =";".join(self.mail_list)
- 27
- 28 #puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8')
- 29puretext = MIMEText('纯文本内容'+self.mail_content)
- 30 msg.attach(puretext)
- 31
- 32 # jpg类型的附件
- 33jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg','rb').read())
- 34jpgpart.add_header('Content-Disposition','attachment', filename='beauty.jpg')
- 35 msg.attach(jpgpart)
- 36
- 37 # 首先是xlsx类型的附件
- 38 #xlsxpart = MIMEApplication(open('test.xlsx', 'rb').read())
- 39 #xlsxpart.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
- 40 #msg.attach(xlsxpart)
- 41
- 42 # mp3类型的附件
- 43 #mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())
- 44 #mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')
- 45 #msg.attach(mp3part)
- 46
- 47 # pdf类型附件
- 48 #part = MIMEApplication(open('foo.pdf', 'rb').read())
- 49 #part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
- 50 #msg.attach(part)
- 51
- 52 try:
- 53s = smtplib.SMTP()#创建邮件服务器对象
- 54s.connect(self.mail_host)#连接到指定的smtp服务器。参数分别表示smpt主机和端口
- 55s.login(self.mail_user, self.mail_pass)#登录到你邮箱
- 56s.sendmail(me, self.mail_list, msg.as_string())#发送内容
- 57 s.close()
- 58 return True
- 59 except Exception, e:
- 60 print str(e)
- 61 return False
- 62
- 63
- 64 if __name__=='__main__':
- 65 #send list
- 66mailto_list = ["",""]
- 67mail_title ='Hey subject'
- 68mail_content ='Hey this is content'
- 69mm = Mailer(mailto_list,mail_title,mail_content)
- 70res = mm.sendMail()
- 71 printres
来源: