python実装メール送信

7888 ワード

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

class sendEmail():
    def __init__(self, userID, userPwd):
        '''
        :param userID:        
        :param userPwd:            
        '''
        self.sendEmailUserID = userID
        self.sendEmailUserPasswd = userPwd



    def sendEmail(self, acceptEmailUserID, sendEmailSubject,sendEmailMsg):
        '''
        :param acceptEmailUserID:        
        :param sendEmailSubject:     
        :param sendEmailMsg:     
        :return: True    , False    
        '''
        ret = True
        try:
            acceptEmailUserName = sendEmail.getUserName(acceptEmailUserID)
            sendEmailUserName = sendEmail.getUserName(self.sendEmailUserID)
            msg = MIMEText(sendEmailMsg, 'plain', 'utf-8')
            msg['From'] = formataddr([sendEmailUserName, self.sendEmailUserID])  #              、       
            msg['To'] = formataddr([acceptEmailUserName, acceptEmailUserID])  #              、       
            msg['Subject'] = sendEmailSubject  #      ,       

            server = smtplib.SMTP_SSL("smtp.qq.com", 465)  #        SMTP   ,   465
            server.login(self.sendEmailUserID, self.sendEmailUserPasswd)  #               、    
            server.sendmail(self.sendEmailUserID, [acceptEmailUserID, ], msg.as_string())  #               、       、    
            server.quit()  #     
        except Exception:
            ret = False
        return ret


    @staticmethod
    def getUserName(emailId):
        '''
        :param emailId:
        :return:
        '''
        emailName = emailId.split("@")[0]
        return emailName


if __name__ == '__main__':
    sendEmailUserID = "*******@qq.com"
    sendEmailUserPasswd = "*********"
    sendEmail = sendEmail(sendEmailUserID, sendEmailUserPasswd)
    sendEmail.sendEmail("******@163.com", "    ", "    ")