def send_mail(target, filename, receiver):
host = Config('email', 'host').value
port = Config('email', 'port').value
username = Config('email', 'username').value
password = Config('email', 'password').value
sender = Config('email', 'sender').value
is_ssl = to_bool(Config('email', 'ssl').value)
if is_ssl:
server = smtplib.SMTP_SSL(host=host, port=port)
else:
server = smtplib.SMTP(host=host, port=port)
s_sid = filename.split('.')[0]
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = '?? {sid} ?? Cobra ????'.format(sid=s_sid)
msg.attach(MIMEText('?????{t}\n?????'.format(t=target), 'plain', 'utf-8'))
with open(filename, 'rb') as f:
attachment = MIMEApplication(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename=os.path.split(filename)[1])
msg.attach(attachment)
try:
server.login(user=username, password=password)
server.sendmail(from_addr=sender, to_addrs=receiver, msg=msg.as_string())
server.quit()
logger.info('[EMAIL] Email delivered successfully.')
return True
except smtplib.SMTPRecipientsRefused:
logger.critical('[EMAIL] Email delivery rejected.')
return False
except smtplib.SMTPAuthenticationError:
logger.critical('[EMAIL] SMTP authentication error.')
return False
except smtplib.SMTPSenderRefused:
logger.critical('[EMAIL] SMTP sender refused.')
return False
except smtplib.SMTPException as error:
logger.critical(error)
return False
评论列表
文章目录