Skip to content

april-projects/april-cpolar-send-email

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目概述

该项目是一个定时任务自动化脚本,主要用于从指定的接口获取最新的公共 URL 与服务名称,并将其通过 HTML 格式的邮件发送给指定的邮箱。此脚本可以定期执行,并且能够自动获取令牌、请求 API、处理数据并发送邮件。

功能说明

  • 获取登录 Token:通过 API 获取用户的登录 Token。
  • 获取公共 URL 与服务名称:从指定的 API 获取所有公共 URL 和对应的服务名称。
  • 发送 HTML 邮件:将获取到的公共 URL 与服务名称以格式化的 HTML 邮件发送给指定邮箱。
  • 定时执行:使用 schedule 库设置定时任务,每 10 小时执行一次,确保最新的公共 URL 与服务名称能够定期发送。

使用方法

1. 环境变量配置

在运行脚本之前,您需要配置以下环境变量:

  • USER_EMAIL: 用户邮箱地址(默认为 admin@qq.com)。
  • USER_PASSWORD: 用户邮箱密码(默认为 77774444)。
  • CPOLAR_URL: 需要请求的 CPOLAR API 地址(默认为 http://localhost:9200)。
  • SENDER_EMAIL: 发送邮件的邮箱(默认为 admin@163.com)。
  • SENDER_PASSWORD: 发送邮箱的密码(默认为 123456)。
  • RECIPIENT_EMAIL: 收件人的邮箱地址(默认为 admin@163.com)。

您可以通过设置这些环境变量来定制脚本的行为。

2. 安装依赖

该项目使用 requestsschedule 库,因此需要先安装依赖:

pip install requests schedule

3. 运行脚本

执行以下命令来启动脚本:

python script.py

脚本会在第一次启动时立即执行一次任务,并且会进入一个持续运行的状态,每 60 秒检查一次是否有定时任务需要执行。定时任务会每 10 小时执行一次。

4. 脚本工作流程

  1. 获取 Token:脚本首先会向指定的 API 发送请求,获取登录所需的 Token。
  2. 获取公共 URL 与服务名称:使用获取到的 Token,通过 API 获取所有公共 URL 和对应的服务名称。
  3. 发送邮件:脚本会将获取到的公共 URL 和服务名称以格式化的 HTML 邮件发送到指定的收件人邮箱。
  4. 定时任务:通过 schedule 库设置定时任务,每 10 小时执行一次上述操作。

邮件内容示例

邮件的 HTML 格式如下所示:

<html>
<head>
    <style>
        /* 邮件样式 */
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            最新公共 URL 与服务名称
        </div>
        <div class="content">
            <p>亲爱的用户,</p>
            <p>以下是您请求的最新公共 URL 与对应的服务名称:</p>
            <ul class="url-list">
                <li class="url-item">
                    <strong>服务名称</strong>: <a href="http://example.com" target="_blank">http://example.com</a>
                </li>
                <!-- 更多 URL 列表项 -->
            </ul>
        </div>
        <div class="footer">
            <p>如果您没有请求此信息,请忽略此邮件。</p>
            <p><a href="https://www.mobaijun.com">访问我们的网站</a>以了解更多信息。</p>
        </div>
    </div>
</body>
</html>

常见问题

1. 如何修改定时任务的执行间隔?

您可以修改以下代码行中的间隔时间:

schedule.every(10).hours.do(job)

10 改为所需的小时数,或者使用 minutesseconds 等单位来调整执行频率。

2. 如何调试邮件发送?

在开发和调试时,您可以打印出邮件内容或捕获发送邮件时的错误信息:

try:
    with smtplib.SMTP_SSL('smtp.163.com', 465) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, recipient_email, msg.as_string())
        print("邮件发送成功!")
except Exception as e:
    print(f"发送邮件失败: {e}")

3. 如何检查日志?

脚本会在控制台输出日志,记录每次邮件发送的状态。如果需要更详细的日志,您可以将日志信息写入文件。

docker-compose启动

version: '3'

services:
  cpolar-email-sender:
    container_name: mobaijun/cpolar-send-email
    environment:
      - USER_EMAIL=${USER_EMAIL}
      - USER_PASSWORD=${USER_PASSWORD}
      - CPOLAR_URL=${CPOLAR_URL}
      - SENDER_EMAIL=${SENDER_EMAIL}
      - SENDER_PASSWORD=${SENDER_PASSWORD}
      - RECIPIENT_EMAIL=${RECIPIENT_EMAIL}
    restart: unless-stopped

许可

此项目使用 MIT 许可证。有关详细信息,请参阅 LICENSE

About

免费版本cpolar,获取最新的cpolar代理地址

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published