python发送中英文邮件

 

#!/usr/bin/python
# -*- coding: utf-8 -*-  
from email.MIMEText import MIMEText
from email.Header import Header
import smtplib
import ConfigParser

class Mail:

      def __init__(self,Mail_host,Mail_user,Mail_pass,From,From_alias,To,Subject,Message):

           self.Mail_host=Mail_host
           self.Mail_user=Mail_user
           self.Mail_pass=Mail_pass
           self.To=To
           self.From=From
           self.From_alias=From_alias
           self.Subject=Subject
           self.Message=Message


      def SendMail(self):
           Messages="\n\t".join(self.Message.split('\n'))
           msg=MIMEText(Messages,_charset="utf-8")
           msg['TO'] = self.To
           msg['FROM'] = self.From_alias+"<"+self.From+">"
           msg['SUBJECT'] = Header(self.Subject,"utf-8")
           To_List = self.To.split(",")
           try:
               mail=smtplib.SMTP()
           except Exception:
               print "request fail!"
           try:
               mail.connect(self.Mail_host)
           except Exception:
               print "connect fail!"
           try:
               mail.login(self.Mail_user,self.Mail_pass)
           except Exception:
               print "authentication failed!"     
           mail.sendmail(self.From,To_List,msg.as_string())
           mail.close()

class Config:

          def Read_config(self):

                  config=ConfigParser.ConfigParser()
                  config_file=open('E-config.ini','r')
                  config.readfp(config_file)
                  host=config.get('Mail','host')
                  user=config.get('Mail','user')
                  passwd=config.get('Mail','pass')
                  from_mail=config.get('Mail','from')
                  from_alias=config.get('Mail','from_alias')
                  to_mail=config.get('Mail','to')
                  subject=config.get('Mail','subject')
                  message=config.get('Mail','message')
                  config_file.close()
                  rc=Mail(host,user,passwd,from_mail,from_alias,to_mail,subject,message)
                  rc.SendMail()

if __name__ == '__main__':

      FS=Config()
      FS.Read_config() 

 

 

 

读取的配置文件:

 

[Mail]
host=smtp.163.com
user=用户名
pass=密码

[email protected]
from_alias=测试邮箱
[email protected]

subject=测试-1
message=Hello:
    你收The is a test mail!

 

====================================================================

 

显示效果:

 

python发送中英文邮件