Skip to content

Repository files navigation

MFS
===
Mfs or Mailfs is a linux kernel IMAP file system. It allows to mount an IMAP
server in a directory and reading mails by reading files.
NOTICE
------
This project is at its early stage, and has only a pedagogic purpose to help me
learn how fs and networking work inside linux kernel. If you still want to give
it a shot I strongly recommend to test it in a VM.
Build it
--------
Simply run "make". Hopefully everything will build ok.
To compile with debug kernel messages run "make DEBUG=1"
How to use it
-------------
As root user:
insmod ./build/fs/mfs.ko
mount -o port=IMAPPORT,login=IMAPLOGIN,pass=IMAPPASS -tmfs IPADDR /mnt/mail
As normal user:
ls /mnt/mail/INBOX
cat /mnt/mail/INBOX/12
Mount helper
------------
In order to avoid to write your password in clear text on the command line, a
helper is in build/tools/mount.mfs.
First as root user copy build/tools/mount.mfs in /sbin then use mount as below:
insmod ./build/fs/mfs.ko
mount -o port=IMAPPORT,login=IMAPLOGIN -tmfs IPADDR /mnt/mail
It will ask you to enter imap password at mount time without printing it.
TODO (not in order)
-------------------
- Export mail in an maildir/mbox/understandable format
- Implement mail body cache, so not to fetch mail body too often (use
address_space_operation to use buffer cache)
- Support mail deletion when doing a "rm" on it.
- Support concurrent file access (protect imap structure)
- and so on ...

About

Linux kernel IMAP filesystem

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages