| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
LueOsburn
8年前发布

python实现发送邮件

[Python]代码    

#_*_encoding:utf-8_*_    #script for python3.2    #-------------------------------------------------------------------------------    # Name:        发送邮件    # Purpose:    #    # Author:      QiuChangJie    #    # Created:     10/09/2012    # Copyright:   (c) cj.qiu 2012    # Licence:     <your licence>    #-------------------------------------------------------------------------------      import os  import smtplib  import mimetypes  from email.mime.multipart import MIMEMultipart  from email.mime.base import MIMEBase  from email.mime.text import MIMEText  from email.mime.audio import MIMEAudio  from email.mime.image import MIMEImage  from email.encoders import encode_base64    MAIL_163_USER = "test@163.com"  MAIL_163_PWD = "test"  MAIL_YEAH_USER = "test@yeah.com"  MAIL_YEAH_PWD = "test"  MAIL_GOOGLE_HOST = "smtp.gmail.com"  MAIL_163_HOST = "smtp.163.com"  MAIL_YEAH_HOST = "smtp.yeah.com"    RECIPIENT = ["test@dinglicom.com"]  ATTACHMENTS = []    class QMail():      def __init__(self, user, pwd, host):          self.mail_user = user          self.mail_pwd = pwd          self.mail_server = smtplib.SMTP()          self.mail_server.connect(host)          self.mail_server.ehlo()          self.mail_server.starttls()          self.mail_server.ehlo()          self.mail_server.login(self.mail_user, self.mail_pwd)        def __del__(self):          self.mail_server.close()        def send_mail(self, recipient, subject, text, att_files=[]):          msg = MIMEMultipart()          msg["From"] = self.mail_user          msg["Subject"] = subject          msg["To"] = ",".join(recipient)          msg.attach(MIMEText(text))          if len(att_files) > 0:              for file_name in att_files:                  msg.attach(self.get_attachment(file_name))          self.mail_server.sendmail(self.mail_user, recipient, msg.as_string())        def get_attachment(self, file_name):          content_type, encoding = mimetypes.guess_type(file_name)          if content_type is None or encoding is not None:              content_type = "application/octet-stream"          main_type, sub_type = content_type.split('/', 1)          file = open(file_name, "rb")          if main_type == "text":              attachment = MIMEText(file.read())          elif main_type == 'message':              attachment = email.message_from_file(file)          elif main_type == 'image':              attachment = MIMEImage(file.read(), _subType=sub_type)          elif main_type == 'audio':              attachment = MIMEAudio(file.read(), _subType=sub_type)          else:              attachment = MIMEBase(main_type, sub_type)          attachment.set_payload(file.read())          encode_base64(attachment)          file.close()          attachment.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file_name))          return attachment    def test():      mail = QMail("test@163.com", "test", MAIL_163_HOST)      mail.send_mail(["test@dinglicom.com"], "sub_test", "text_test", r"G:\WorkSpace\Doing\CMMI文档模板.dot")    if __name__ == '__main__':      test()