RPA

 

import datetime
import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from settings import log


class MailSender:
def __init__(self):
self.mail_host = "mail.cmhk.com" # 设置服务器
self.mail_user = "zhaoshangxiaocai@cmhk.com" # 用户名
self.mail_pass = "xiaocai123456" # 口令

def send_text_mail(self, body_content, receiver, header='来自RPA机器人'):
receivers = [receiver] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText(body_content, 'plain', 'utf-8')
message['Subject'] = Header(header, 'utf-8')

try:
smtp_obj = smtplib.SMTP()
smtp_obj.set_debuglevel(1)
smtp_obj.connect(self.mail_host, 25) # 25 为 SMTP 端口号
smtp_obj.login(self.mail_user, self.mail_pass)
# log.info(f'mail_user:{self.mail_user}, receivers:{receivers}, message:{message.as_string}')
smtp_obj.sendmail(self.mail_user, receivers, message.as_string())
return True
except smtplib.SMTPException as e:
print(e)
return False

def send_file_mail(self, receiver, body_content, file_path='', file_name='', header='来自rpa机器人'):

receivers = [receiver]

message = MIMEMultipart()
# msg = MIMEText(body_content, 'html')
# 邮件正文内容
msg = MIMEText(body_content, 'plain', 'utf-8')
message.attach(msg)
message['Subject'] = Header(header, 'utf-8')
if file_name:
with open(file_path, "rb") as file:
att1 = MIMEText(file.read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'

att1["Content-Disposition"] = f'attachment; filename="{file_name}"'
message.attach(att1)
try:
smtp_obj = smtplib.SMTP()
smtp_obj.set_debuglevel(1)
smtp_obj.connect(self.mail_host, 25) # 25 为 SMTP 端口号
smtp_obj.login(self.mail_user, self.mail_pass)
# log.info(f'mail_user:{self.mail_user}, receivers:{receivers}, message:{message.as_string}')
smtp_obj.sendmail(self.mail_user, receivers, message.as_string())
except smtplib.SMTPException as e:
log.info("发送邮件失败", exc_info=True)
return False
else:
log.info("发送邮件成功", exc_info=False)
return True


if __name__ == '__main__':
receiver = "ex-ouyangl003@cmft.com"
file_path = 'D:\\Users\\ex-ouyangl003\\PycharmProjects\\cmht_rpa\\BCE_BANK\\downloads\\balance_excels\\中银香港资金余额表 2019-08-08.xlsx'
today = datetime.datetime.now().strftime('%Y-%m-%d')
file_name = "Bank of China(Hong Kong) fund balance sheet {}.xlsx".format(today)
header = '中银香港资金余额表 {}'.format(today)
body_content = 'hi,there! 这是RPA机器人给您发送的邮件'
# body_content = """
# <table border="1" cellpadding="0" cellspacing="0" width="900" style="border-collapse: collapse;">
# <tbody>
# <tr><th>币种</th> <th>买入</th> <th>卖出</th> <th>中间</th></tr>
# <tr><td style='text-align:center'>人民币</td><td style='text-align:center'>1.0</td><td style='text-align:center'>2.0</td><td style='text-align:center'>3.0</td></tr> <tr><td style='text-align:center'>美元</td><td style='text-align:center'>1.0</td><td style='text-align:center'>2.0</td><td style='text-align:center'>3.0</td></tr> <tr><td style='text-align:center'>日元</td><td style='text-align:center'>1.0</td><td style='text-align:center'>2.0</td><td style='text-align:center'>3.0</td></tr> <tr><td style='text-align:center'>港元</td><td style='text-align:center'>1.0</td><td style='text-align:center'>2.0</td><td style='text-align:center'>3.0</td></tr>
# </tbody>
# </table>
# """
MailSender().send_file_mail(receiver, body_content, file_path, file_name, header)
#--------------------------

import datetime
import os
import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from settings import log, BASEDIR, login_info


class MailSender:
def __init__(self):

self.mail_host = login_info.get("mail_host")
self.mail_user = login_info.get("mail_user")
self.mail_pass = login_info.get("mail_pass") # 口令

self.sender = login_info.get("mail_user")
self.receivers = login_info.get("receivers").split(';') # Cc-可见;Bcc-不可见 抄送或者暗送

def send_text_mail(self, body_content, header='来自RPA机器人'):

message = MIMEText(body_content, 'plain', 'utf-8')
message['Subject'] = Header(header, 'utf-8')

try:
smtp_obj = smtplib.SMTP()
smtp_obj.set_debuglevel(1)
smtp_obj.connect(self.mail_host, 25) # 25 为 SMTP 端口号
smtp_obj.login(self.mail_user, self.mail_pass)
# log.info(f'mail_user:{self.mail_user}, receivers:{receivers}, message:{message.as_string}')
smtp_obj.sendmail(self.mail_user, self.receivers, message.as_string())
return True
except smtplib.SMTPException as e:
print(e)
return False

def send_file_mail(self, body_content, file_path='', file_name='', header='来自rpa机器人'):

message = MIMEMultipart()
msg = MIMEText(body_content, 'html')
# 邮件正文内容
# msg = MIMEText(body_content, 'plain', 'utf-8')
message.attach(msg)
message['Subject'] = Header(header, 'utf-8')
message['From'] = self.sender
message['To'] = ','.join(self.receivers)
message['Bcc'] = ','.join(self.receivers)

if file_name:
with open(file_path, "rb") as file:
att1 = MIMEText(file.read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = f'attachment; filename="{file_name}"'
message.attach(att1)
try:
smtp_obj = smtplib.SMTP()
smtp_obj.set_debuglevel(1)
smtp_obj.connect(self.mail_host, 25) # 25 为 SMTP 端口号
smtp_obj.login(self.mail_user, self.mail_pass)
# log.info(f'mail_user:{self.mail_user}, receivers:{receivers}, message:{message.as_string}')
smtp_obj.sendmail(self.mail_user, self.receivers, message.as_string())
except smtplib.SMTPException:
log.info("发送邮件失败", exc_info=True)
return False
else:
log.info("发送邮件成功", exc_info=False)
return True


if __name__ == '__main__':

today = datetime.datetime.now().strftime('%Y%m%d')
file_path1 = os.path.join((BASEDIR + '\\downloads\\') + "久其数据平台RPA监测结果 {}.xlsx".format(today))
file_name1 = "JQ Data Platform Auto Monitor Results {}.xlsx".format(today)
header1 = '久其数据平台自动化监测结果 {}'.format(today)
body_content1 = """
<h4>hi,boss! 这是RPA机器人给您发送的邮件</h4>
<table border="1" cellpadding="0" cellspacing="0" width="500" style="border-collapse: collapse;">
<tbody>
<tr><th>动作</th><th>时间</th></tr>
<tr><td style='text-align:center;'>登入(3000毫秒)</td><td style='text-align:center;'><font color='black'>116.22</font></td></tr><tr><td style='text-align:center;'>在线人数</td><td style='text-align:center;'><font color='black'>17.0</font></td></tr><tr><td style='text-align:center;'>切换单位(3000毫秒)</td><td style='text-align:center;'><font color='black'>14.1</font></td></tr><tr><td style='text-align:center;'>全表运算(6000毫秒)</td><td style='text-align:center;'><font color='black'>4593.9</font></td></tr><tr><td style='text-align:center;'>全表审核(15000毫秒)</td><td style='text-align:center;'><font color='red'>21062.12</font></td></tr><tr><td style='text-align:center;'>单表运算(3000毫秒)</td><td style='text-align:center;'><font color='black'>566.52</font></td></tr><tr><td style='text-align:center;'>单表审核(3000毫秒)</td><td style='text-align:center;'><font color='black'>428.64</font></td></tr><tr><td style='text-align:center;'>整表清除(2000毫秒)</td><td style='text-align:center;'><font color='black'>27.35</font></td></tr><tr><td style='text-align:center;'>报表切换(2000毫秒)</td><td style='text-align:center;'><font color='black'>281.02</font></td></tr><tr><td style='text-align:center;'>导入(15000毫秒)</td><td style='text-align:center;'><font color='black'>12962.58</font></td></tr><tr><td style='text-align:center;'>一次循环的耗时(分)</td><td style='text-align:center;'><font color='black'>6.82</font></td></tr>
</tbody>
</table>
"""
MailSender().send_file_mail(body_content1, file_path1, file_name1, header1)

posted @ 2021-02-07 23:50  涛子17180  阅读(56)  评论(0编辑  收藏  举报