package main import ( "flag" "fmt" "os" "stalwart_client/pkg/api" ) func main() { // 解析命令行参数 emailPtr := flag.String("e", "", "邮箱地址") passwordPtr := flag.String("p", "", "用户密码") descriptionPtr := flag.String("d", "", "用户描述") quotaPtr := flag.Int64("q", 0, "邮箱配额(字节)") authTypePtr := flag.String("a", "basic", "认证方式: basic(基本认证)或apikey(API Key认证)") authUserPtr := flag.String("u", "", "基本认证用户名") authPassPtr := flag.String("P", "", "基本认证密码") apiKeyPtr := flag.String("k", "", "API Key") configPtr := flag.String("c", "", "配置文件路径") flag.Parse() // 加载配置 config, err := api.LoadConfig(*configPtr) if err != nil { fmt.Printf("加载配置失败: %v\n", err) os.Exit(1) } // 创建客户端 client := api.NewClient(config) // 确定认证类型 var authType api.AuthType if *authTypePtr == "apikey" { authType = api.APIKeyAuth } else { authType = api.BasicAuth } // 创建用户 userID, username, email, password, err := client.CreateEmailUser( *emailPtr, *passwordPtr, *descriptionPtr, *quotaPtr, authType, *authUserPtr, *authPassPtr, *apiKeyPtr, ) if err != nil { fmt.Printf("创建用户失败: %v\n", err) os.Exit(1) } // 打印结果 success := api.PrintUserResult(userID, username, email, password) if !success { os.Exit(1) } }