|
@@ -26,6 +26,7 @@ type MailMessage struct {
|
|
|
From string `description:"发件人名称"`
|
|
|
Title string `description:"邮件标题"`
|
|
|
Content string `description:"邮件主体正文"`
|
|
|
+ Folder string `description:"所属文件夹"`
|
|
|
Resources map[string]string `description:"正文内嵌资源"`
|
|
|
Attachment map[string]string `description:"附件资源"`
|
|
|
}
|
|
@@ -160,7 +161,7 @@ func ListenMail(mailAddress, folder, userName, password string, readBatchSize, f
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
- emailMessage, isRead, tmpErr := readEveryMsg(msg)
|
|
|
+ emailMessage, isRead, tmpErr := readEveryMsg(msg, folder)
|
|
|
if tmpErr != nil {
|
|
|
// 移除本地文件
|
|
|
{
|
|
@@ -204,7 +205,7 @@ func ListenMail(mailAddress, folder, userName, password string, readBatchSize, f
|
|
|
}
|
|
|
|
|
|
// document link: https://github.com/emersion/go-imap/wiki/Fetching-messages
|
|
|
-func readEveryMsg(msg *imap.Message) (emailMessage MailMessage, ok bool, err error) {
|
|
|
+func readEveryMsg(msg *imap.Message, folder string) (emailMessage MailMessage, ok bool, err error) {
|
|
|
ok = true
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -217,6 +218,7 @@ func readEveryMsg(msg *imap.Message) (emailMessage MailMessage, ok bool, err err
|
|
|
emailMessage.Attachment = make(map[string]string) // 附件
|
|
|
|
|
|
emailMessage.Uid = msg.Uid
|
|
|
+ emailMessage.Folder = folder
|
|
|
if IsHandleMessageIdMap != nil {
|
|
|
if _, has := IsHandleMessageIdMap[int(emailMessage.Uid)]; has {
|
|
|
fmt.Println("邮件已处理,邮件下标:", emailMessage.Uid)
|