this post was submitted on 18 Nov 2023
32 points (97.1% liked)

Linux

48386 readers
985 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I have an account on an SMTP server. The server has a storage quota. I'd like the delete stuff from the server but keep it locally in case I need it. Just in case.

I'd like to be able to access the mail somehow on other computers and hopefully mobile devices on my network so that it can be searched when needed. I'm not sure what the best interface for that would be. A webmail client?

One option would be to use Thunderbird or another client to download the mail once in a while but disable deleting local messages when they are removed from the server. Would Thunderbird store the messages in a format I can use readily with other applications? Or should I use something else to download the mail?

What about situations where messages are moved from one folder to another on the server? Would I get a duplicate locally of the message appearing in both locations? Not sure how the storage and metadata actually are.

Also, is it possible in such a situation to put a message back on the server if I realize it was deleted in error?

Any idea would be welcome. I am a bit stuck.

I can use the command line comfortably but ideally I'd have a solution that doesn't rely on the terminal to find find messages and such. I don't really like terminal mail clients.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 1 year ago (1 children)

Honestly i could live without fast. If its a text file there is always grep, ripgrep, silver searcher etc. But there is nothing in my deleted email demanding immediate attention. Any situation i forsee would accommodate waiting hours or days. I was kind of hoping to continue interacting with it in a webmail kind if way because piling up too many new things for something i wont be working on regularly is just asking for a mess.

The mutt/notmuch proposal is a solid solution for the right person. To me, learning like 5 new major tools just for one project is a big risk. I played around with this stuff a couple years ago and failed at creating even a simple setup to do regular mail stuff. It is absolutely not clear.

So i might try one if the intermediate solutions mentioned elsewhere. A solution that digests mail be acceptable as an addon extra.

[–] [email protected] 1 points 1 year ago

Well, I've solved it! I now have a web interface (accessible via VPN, although, in principle, I could expose it to the internet) that allows fast, full-text search of all my old emails. Here is the recipe:

  1. Maildir: I converted all my mbox files to maildir using this python script: https://superuser.com/questions/1169371/how-to-convert-mbox-mail-files-as-found-in-thunderbird-dir-to-maildir#1343019
  2. Installed notmuch via my distro's repository and set it up (notmuch setup & notmuch new). This creates a new folder in your maildir directory containing full-text search info.
  3. Installed netviel via python3 -m pip install netviel and then ran it via python3 -m netviel

That's it! This let's you search locally. I actually did a few more steps because I wanted to containerize this thing so I could run it on my NAS. I'd be happy to go into detail about that too, if you're interested. One hiccup was that, for some reason, netviel binds to 127.0.0.1 instead of 0.0.0.0, and there is no way to change that without compiling the project yourself. But, I found a workaround for my Docker container where you can use socat bound to 0.0.0.0 to redirect requests to netviel, so that requests from other computers appear local to netviel.

Anyway, that makes it all sound more complicated than it is. I am super-pleased to have solved this problem at last!