Files
mail_api_go/cmd/create_user/main.go
huangzhenpc a8d25054fc sdd
2025-05-23 23:08:02 +08:00

65 lines
1.4 KiB
Go

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)
}
}