#hide #tokio #cookies #service #icloud #i-cloud-client

hide_my_email

iCloud Hide My Email在Rust中的实现

3个版本

0.1.3 2024年1月31日
0.1.2 2024年1月30日
0.1.1 2024年1月30日

108电子邮件

每月22次下载

WTFPL 许可证

16KB
328

Hide My Email

Rust实现的苹果公司的隐藏我的电子邮件服务

要求

  • Apple ID
  • iCloud+ 订阅

安装

cargo添加 hide_my_email

获取Apple Cookies

  1. 登录到 iCloud
  2. 打开点菜单 (右上角,紧挨着你的照片)
  3. 在iCloud+功能下点击"隐藏我的电子邮件"
  4. 打开浏览器的开发者工具(F12,或右键点击页面并点击"检查")
  5. 导航到开发者工具的网络标签页并确保它正在记录 (启用Preserve Log可能会有帮助).
  6. 刷新网站
  7. 在网络标签页中,过滤请求"validate",应该只有一个,如果有多个,使用最后一个请求(最近的)
  8. 滚动/导航到请求头部分/标签页
  9. 复制Cookie头的值

示例

use std::env;
use hide_my_email::{Cookie, HideMyEmailManager, ICloudClient};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
   // eg, key1=value1; key2=\"value2\";
   let cookies = env::var("COOKIE").unwrap();
   let cookies = Cookie::from_str(&cookies).unwrap();

   let mut icloud = ICloudClient::new(&cookies);
   let _ = icloud.validate().await?;
   
   let manager = HideMyEmailManager::from(icloud);

   let email = manager.generate().await?;
   let _ = manager.claim(&email, "RustLang", "").await?;

   // OR
   
   let email = manager.generate_and_claim("RustLang", "").await?;
   
   Ok(())
}

未来计划

通过用户名/密码 + 2FA代替cookies添加身份验证支持

依赖项

~6–19MB
~288K SLoC