package main import ( "flag" "fmt" "os" "stalwart_client/pkg/api" "strings" ) func main() { // 解析命令行参数 emailPtr := flag.String("e", "hayfzgul@evnmail.com", "邮箱地址") passwordPtr := flag.String("p", "", "邮箱密码") serverPtr := flag.String("s", "mail.evnmail.com", "IMAP服务器地址") portPtr := flag.Int("P", 993, "IMAP服务器端口") numPtr := flag.Int("n", 1, "获取的邮件数量") noSSLPtr := flag.Bool("no-ssl", false, "禁用SSL连接") configPtr := flag.String("c", "", "配置文件路径") flag.Parse() // 加载配置 _, err := api.LoadConfig(*configPtr) if err != nil { fmt.Printf("加载配置失败: %v\n", err) os.Exit(1) } // 检查密码 password := *passwordPtr if password == "" { fmt.Println("错误: 必须提供邮箱密码") flag.Usage() os.Exit(1) } // 提取域名 parts := strings.Split(*emailPtr, "@") domain := "" if len(parts) > 1 { domain = parts[1] } // 如果未指定服务器,尝试使用邮箱域名 server := *serverPtr if server == "" && domain != "" { server = fmt.Sprintf("mail.%s", domain) } // 获取邮件 emails, err := api.GetLatestEmails( *emailPtr, password, server, *portPtr, !*noSSLPtr, *numPtr, ) if err != nil { fmt.Printf("获取邮件失败: %v\n", err) os.Exit(1) } // 打印邮件信息 api.PrintEmails(emails) }