通常,在邮件服务器上,我们可以到/var/mailbox/Maildir目录中,看到如下内容
[root@mail Maildir]# pwd
/var/vmail/vmail1/itlearning.club/s/y/s/system-2018.11.14.12.08.37/Maildir
[root@mail Maildir]# ll -a
total 76
drwx------ 9 vmail vmail 4096 Nov 19 10:03 .
drwx------ 3 vmail vmail 4096 Nov 14 14:24 ..
drwx------ 2 vmail vmail 4096 Nov 19 10:03 cur
-rw------- 1 vmail vmail 0 Nov 14 14:25 dovecot-acl-list
-rw------- 1 vmail vmail 9288 Nov 19 10:03 dovecot.index.cache
-rw------- 1 vmail vmail 6828 Nov 19 10:03 dovecot.index.log
-rw------- 1 vmail vmail 22 Nov 14 14:33 dovecot.index.thread
-rw------- 1 vmail vmail 96 Nov 14 14:25 dovecot.mailbox.log
-rw------- 1 vmail vmail 426 Nov 19 09:37 dovecot-uidlist
-rw------- 1 vmail vmail 8 Nov 14 14:25 dovecot-uidvalidity
-r--r--r-- 1 vmail vmail 0 Nov 14 14:25 dovecot-uidvalidity.5bec2231
drwx------ 5 vmail vmail 4096 Nov 19 04:58 .Drafts
drwx------ 5 vmail vmail 4096 Nov 15 06:39 .Junk
drwx------ 2 vmail vmail 4096 Nov 19 09:37 new
drwx------ 5 vmail vmail 4096 Nov 19 05:00 .Sent
-rw------- 1 vmail vmail 23 Nov 14 14:25 subscriptions
drwx------ 2 vmail vmail 4096 Nov 19 09:37 tmp
drwx------ 5 vmail vmail 4096 Nov 19 10:03 .Trash
可以看到,4个隐藏文件夹 ,分别如下:
.Junk
.Sent
.Drafts
.Trash
通过查看目录树状图,发现这四个隐藏文件下面的目录结构和Maildir类似,也是有cur,new,tmp。
[root@mail Maildir]# tree -h
.
├── [4.0K] cur
│ ├── [2.5K] 1542263844.M217805P4471.mail.itlearning.club,S=2607,W=2668:2,S
│ ├── [2.6K] 1542264895.M115842P5075.mail.itlearning.club,S=2659,W=2721:2,RS
│ ├── [6.2K] 1542264975.M573630P5141.mail.itlearning.club,S=6306,W=6445:2,S
│ ├── [ 14K] 1542265177.M679503P5270.mail.itlearning.club,S=14117,W=14425:2,S
│ └── [4.1K] 1542278684.M662508P23639.mail.itlearning.club,S=4186,W=4255:2,S
├── [ 0] dovecot-acl-list
├── [9.1K] dovecot.index.cache
├── [6.7K] dovecot.index.log
├── [ 22] dovecot.index.thread
├── [ 96] dovecot.mailbox.log
├── [ 426] dovecot-uidlist
├── [ 8] dovecot-uidvalidity
├── [ 0] dovecot-uidvalidity.5bec2231
├── [4.0K] new
├── [ 23] subscriptions
└── [4.0K] tmp
3 directories, 14 files
[root@mail Maildir]# man tree
[root@mail Maildir]# tree -ha
.
├── [4.0K] cur
│ ├── [2.5K] 1542263844.M217805P4471.mail.itlearning.club,S=2607,W=2668:2,S
│ ├── [2.6K] 1542264895.M115842P5075.mail.itlearning.club,S=2659,W=2721:2,RS
│ ├── [6.2K] 1542264975.M573630P5141.mail.itlearning.club,S=6306,W=6445:2,S
│ ├── [ 14K] 1542265177.M679503P5270.mail.itlearning.club,S=14117,W=14425:2,S
│ └── [4.1K] 1542278684.M662508P23639.mail.itlearning.club,S=4186,W=4255:2,S
├── [ 0] dovecot-acl-list
├── [9.1K] dovecot.index.cache
├── [6.7K] dovecot.index.log
├── [ 22] dovecot.index.thread
├── [ 96] dovecot.mailbox.log
├── [ 426] dovecot-uidlist
├── [ 8] dovecot-uidvalidity
├── [ 0] dovecot-uidvalidity.5bec2231
├── [4.0K] .Drafts
│ ├── [4.0K] cur
│ ├── [3.4K] dovecot.index.cache
│ ├── [6.3K] dovecot.index.log
│ ├── [ 52] dovecot-uidlist
│ ├── [ 0] maildirfolder
│ ├── [4.0K] new
│ └── [4.0K] tmp
├── [4.0K] .Junk
│ ├── [4.0K] cur
│ ├── [1.0K] dovecot.index.cache
│ ├── [1.3K] dovecot.index.log
│ ├── [ 51] dovecot-uidlist
│ ├── [ 0] maildirfolder
│ ├── [4.0K] new
│ └── [4.0K] tmp
├── [4.0K] new
├── [4.0K] .Sent
│ ├── [4.0K] cur
│ │ ├── [1.6K] 1542261673.M600069P2947.mail.itlearning.club,S=1673,W=1713:2,S
│ │ ├── [1.4K] 1542261994.M535474P3293.mail.itlearning.club,S=1425,W=1462:2,S
│ │ ├── [2.9K] 1542262194.M400014P2207.mail.itlearning.club,S=2939,W=2996:2,S
│ │ ├── [1.6K] 1542263243.M103832P2170.mail.itlearning.club,S=1683,W=1723:2,S
│ │ ├── [2.7K] 1542264939.M7618P2947.mail.itlearning.club,S=2784,W=2840:2,S
│ │ ├── [2.9K] 1542264996.M851965P4329.mail.itlearning.club,S=2944,W=3001:2,S
│ │ ├── [4.6K] 1542265200.M948881P2207.mail.itlearning.club,S=4721,W=4801:2,S
│ │ ├── [1.4K] 1542592635.M314192P5176.mail.itlearning.club,S=1383,W=1420:2,S
│ │ ├── [2.9K] 1542592830.M498550P5184.mail.itlearning.club,S=2930,W=2986:2,S
│ │ ├── [3.0K] 1542592859.M98005P5622.mail.itlearning.club,S=3025,W=3083:2,S
│ │ ├── [3.0K] 1542599288.M426072P5176.mail.itlearning.club,S=3025,W=3083:2,S
│ │ ├── [3.0K] 1542599662.M701601P5622.mail.itlearning.club,S=3030,W=3088:2,S
│ │ └── [3.0K] 1542599923.M772534P5622.mail.itlearning.club,S=3040,W=3098:2,S
│ ├── [3.5K] dovecot.index.cache
│ ├── [5.7K] dovecot.index.log
│ ├── [ 859] dovecot-uidlist
│ ├── [ 0] maildirfolder
│ ├── [4.0K] new
│ └── [4.0K] tmp
├── [ 23] subscriptions
├── [4.0K] tmp
└── [4.0K] .Trash
├── [4.0K] cur
│ └── [2.5K] 1542616668.M136861P7711.mail.itlearning.club,S=2550,W=2609:2,S
├── [1.9K] dovecot.index.cache
├── [2.3K] dovecot.index.log
├── [ 113] dovecot-uidlist
├── [ 0] maildirfolder
├── [4.0K] new
└── [4.0K] tmp
19 directories, 44 files
邮件文件的名称是如下格式:
1542264895.M115842P5075.mail.itlearning.club,S=2659,W=2721:2,RS
1542264895 --邮件到达时间戳
M115842P5075 --
mail.itlearning.club --域名
S=2659 --邮件大小 file size
W=2721 --RFC822大小 file's RFC822.SIZE
2 -- "1": Experimental semantics ;"2": Each character after the comma is an independent flag.
RS --邮件状态,其他状态见后面内容
"P" (passed): the user has resent/forwarded/bounced this message to someone else.
"R" (replied): the user has replied to this message.
"S" (seen): the user has viewed this message, though perhaps he didn't read all the way through it.
"T" (trashed): the user has moved this message to the trash; the trash will be emptied by a later user action.
"D" (draft): the user considers this message a draft; toggled at user discretion.
"F" (flagged): user-defined flag; toggled at user discretion.
New flags may be defined later. Flags must be stored in ASCII order: e.g., "2,FRS".
参考:
Using maildir format
http://cr.yp.to/proto/maildir.html
Maildir