Files
huangzhenpc a8d25054fc sdd
2025-05-23 23:08:02 +08:00

69 lines
1.3 KiB
Go

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