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)
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号