zoukankan      html  css  js  c++  java
  • cs上线qq邮件通知

    0x01.两个文件

    1.sme.cna

    使用sme脚本监控上线, 然后调用python脚本执行发邮件

    #Sme.cna
    #Config
    $Switch = "on"; #开关
    #Config
    
    
    on beacon_initial { # 在Beacon 初始化时执行,也就是上线时执行
    
        if ($Switch eq "on"){ #判断开关是否为on
            action("\c9Sending SME......"); # 调试信息发送到CS的公屏上,代表邮件正在发送
            $IP = beacon_info($1, "external"); #取上线主机IP
            $User = beacon_info($1, "user"); #取上线主机用户名
            $ComName = beacon_info($1, "computer"); #取上线主机计算机名
            $Arch = beacon_info($1, "arch"); #取上线主机架构
            @Curl_command = @('python3', '/tmp/sme.py'  ,$IP,$User,$ComName,$Arch); #定义执行邮件发送脚本命令, sme.py一定要写服务器的绝对路径,并且要有执行权限
            exec(@Curl_command); #执行邮件发送命令
            println(@Curl_command);
            action("\c9Send SME Done: ".$ComName."!");
        }
    }
    

    2.sme.py

    import sys
    
    import smtplib  # smtplib发送邮件
    from email.mime.text import MIMEText  # 构造文本内容
    from email.header import Header  # 构造标题内容
    
    
    def post_email(ip, username, computer_name, arch):
        # 设置服务器地址
        mail_host = "smtp.qq.com"
        # 设置服务器端口
        mail_port = 465
    
        # QQ邮件登录账号
        mail_user = "273xxxxxx"
        # QQ邮箱第三方授权码
        mail_pass = "xxxxxxx"
    
        # 初始化发送方账号
        sender = "27xxxxx@qq.com"
        # 初始化接收方账号
        receivers = "273xxxxxxx@qq.com"
        # 构造文本对象,三个参数:文本内容,设置文本格式,设置编码
        data = f"""上线主机IP:{ip}
    上线主机用户名:{username}
    上线主机计算机名:{computer_name}
    上线主机架构:{arch}
    """
    
        message = MIMEText(data, "plain", "utf-8")
        # 文本对象 添加 发送者
        message["From"] = sender
        # 文本对象 添加 接收者
        message["To"] = receivers
        # 文本对象 添加 标题
        message["Subject"] = Header("至风一样男子的邮件")
    
        # 创建 SMTP 对象,连接目标服务器
        smtpObj = smtplib.SMTP_SSL(mail_host, mail_port)
        # 自己账号登录
        smtpObj.login(mail_user, mail_pass)
        # 发送邮件到目标地址  注意:信息由MTMEText对象 转为 字符串对象
        smtpObj.sendmail(sender, receivers, message.as_string())
        # 结束 SMTP 对象
        smtpObj.quit()
    
    
    if __name__ == '__main__':
        ip = sys.argv[1]
        username = sys.argv[2]
        computer_name = sys.argv[3]
        arch = sys.argv[4]
        post_email(ip, username, computer_name, arch)
    

    3.注意事项

    根据个人配置,修改两个文件相应的内容
    # 1.邮件发送方需要开通smtp服务,获取授权码
    # 2.sme.py需要有执行(x)权限
    # 3.cs服务端后台加载扩展脚本的命令
    nohup ./agscript cs的ip cs的端口 任意用户名 密码 插件路径 &
    
  • 相关阅读:
    VS2012打开项目——已停止工作
    使用copydata实现进程之间数据传递
    WPF Demo20 模板
    WPF Demo19 命令、UC
    WPF Demo18 路由事件
    WPF Demo17 数据绑定
    Spark2.3.0 报 io.netty.buffer.PooledByteBufAllocator.metric
    Impala与Hive的优缺点和异同
    Hive 报错信息及解决方法
    hive表多种存储格式的文件大小差异,无重复数据
  • 原文地址:https://www.cnblogs.com/xcymn/p/15721403.html
Copyright © 2011-2022 走看看