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", " ", " ")