sdd
This commit is contained in:
68
cmd/get_latest_email/main.go
Normal file
68
cmd/get_latest_email/main.go
Normal file
@@ -0,0 +1,68 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user