Κανε την διαχείριση των emails σου μέσω emacs!

*Αυτό είναι μια μετάφραση από το άρθρο που έγραψα στην σελιδα μου

Table of Contents

Σε αυτό το άρθρο θα σας καθοδηγήσω στο πως να στήσετε το emacs για να διαχειρίζεται τα emails σας με mu4e and mbsync

Γιατί να χρησιμοποιήσεις emacs για την διαχείριση των email σου?

Το emacs είναι ένα απο το πιο “ισχυρά” και προσαρμόσιμα/πολύπλευρα προγράμματα, έτοιμα να λύσουν οποιοδήποτε πρόβλημα αντιμετωπίζεις. Η χρήση του mu4e με emacs προσφέρει μια απρόσκοπτη ενσωμάτωση της διαχείρισής των email σου με τον τρόπο εργασίας σου, προσφέροντας με εύκολη, αποτελεσματική, βασισμένη στο πληκτρολόγιο λύση στην διαχείριση των μηνυμάτων σου, με το mu4e ως front-end για το mu, έχεις στην διάθεση ένα από τα πιο δυνατά εργαλεία για αναζήτηση και φιλτραρίσματα, κάνοντας την διαχείριση των μηνυμάτων από χρονοβόρο μαρτύριο σε απλά keyboard-macros

Επίσης σου προσφέρει την δυνατότητα να αποθηκεύεις τα email σου στο μηχάνημα σου, δίνοντας σου πρόσβαση ακόμα και όταν είσαι offline.

Εγκατάσταση και ρυθμίσεις με mbsync

Πρώτα από όλα, θα εγκαταστήσουμε το isync στην πράξη είναι mbsync

guix install isync #in guix

sudo apt install isync #in debian-based distros

Συγχρόνισε τα email σου με isync

Φτιάξε έναν αρχείο και ονόμασε το .mbsyncrc και πρόσθεσε τα παρακάτω:

Για το παράδειγμα κάτω χρησιμοποιούμαι gmail

IMAPAccount gmail
Host imap.gmail.com # feel free to change it to your desired client, e.g imap.fastmail.com
User youremail@address.com # Change wit your email
# This is not a secure way to store your password
# But we will use it for the sake of simplicity of this guide
PassCmd "cat ~/.gmail-pass" # Add your pass word for 3rd party apps in ~/.gmail-pass *NOT your main pass*
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore gmail-remote
Account gmail

# Setting path for your email
MaildirStore gmail-local
Path ~/Mail/Gmail
Inbox ~/Mail/Gmail/Inbox
Trash ~/Mail/Gmail/Trash
SubFolders Verbatim

Channel gmail
Far :gmail-remote:
Near :gmail-local:
Create Both
SyncState *

Εάν ενδιαφέρεστε να χρησιμοποιήσετε πολλαπλές διευθύνσεις ηλεκτρονικού ταχυδρομείου, απλά προσθέστε ένα δεύτερο IMAPAccount στο ίδιο αρχείο όπως έκαναμε παραπάνω, με διαφορετικές μεταβλητές (path, channel κλπ.).

Για να βρείτε περισσότερες πληροφορίες για την ενεργοποίηση κωδικών πρόσβασης τρίτων, επισκεφθείτε το πρόγραμμα αλληλογραφίας σας, για το gmail εδώ.

Στην περιπτωση μου, η fastmail ήταν η πιο εύκολη ρύθμιση, ειδικά αν χρησιμοποιείτε ένα custom domain.

Ξεκινήστε τον συγχρονισμό του ηλεκτρονικού ταχυδρομείου σας με την εκτέλεση:

mbsync -a

Φτιάξε το mailbox

Κατεβάστε το mu πακετο
Αναζήτησε για mu or mu4e

guix install mu 

sudo apt install mu4e

Προετοιμάστε το mailbox εκτελώντας

mu init --maildir=~/Mail --my--address=<your-address> 

Εδώ μπορείς να προσθέσεις πολλαπλά email

Εγκατέστησε mu4e με πολλαπλούς λογαριασμούς

Δημιουργήστε ένα αρχείο στην επιθυμητή τοποθεσία όπως:
~/.emacs.d/snippets/email-settings.el
και πρόσθεσε τα παρακάτω:

(require 'mu4e)

;;Define update interval, get-mail-command, maildir-list and message-send-mail-function
(require 'mu4e)

;;Here we create a function to simplify adding new contexts to mu4e
(defun set-mu4e-context (context-name full-name mail-address signature server)
  "Return a mu4e context named CONTEXT-NAME with :match-func matching
  folder name CONTEXT-NAME in Maildir. The context's `user-mail-address',
  `user-full-name' and `mu4e-compose-signature'`smtpmail-smpt-server'. is set to MAIL-ADDRESS
  FULL-NAME SIGNATURE and SERVER respectively.
  Special folders are set to context specific folders."
  (let ((dir-name (concat "/" context-name)))
    (make-mu4e-context
     :name context-name
     ;; we match based on the maildir of the message
     :match-func
     `(lambda (msg)
	(when msg
	  (string-match-p
	   ,(concat "^" dir-name)
	   (mu4e-message-field msg :maildir))))
     :vars
     `((user-mail-address    . ,mail-address)
       (user-full-name       . ,full-name)
       (mu4e-sent-folder     . ,(concat dir-name "/Sent"))
       (mu4e-drafts-folder   . ,(concat dir-name "/Drafts"))
       (mu4e-trash-folder    . ,(concat dir-name "/Trash"))
       (mu4e-trash-folder    . ,(concat dir-name "/Starred"))
       (mu4e-refile-folder   . ,(concat dir-name "/Archive"))
       (smtpmail-smtp-service . ,465)
       (smtpmail-smtp-server . , server)
       (mu4e-compose-signature . ,signature)))))
	   
;;Fixing duplicate UID errors when using mbsync and mu4e
(setq mu4e-change-filenames-when-moving t)

;;Define update interval, get-mail-command, maildir-list message-send-mail-function and smptmail-stream-type		
(setq mu4e-update-interval (* 10 60)
      mu4e-get-mail-command "mbsync -a"
      mu4e-maildir-list "~/Mail/Inbox"
      message-send-mail-function 'smtpmail-send-it
	  smtpmail-stream-type 'ssl))

Χρησιμοποιώντας το πάνω function, θα φτιάξουμε τα mu4e-contexts

(setq mu4e-contexts
      `(,(set-mu4e-context
	  "Gmail";Context Name
	  "My-Username" ; User name
	  "my-address@gmail.com" ; Email address
	  "HereIs\nMy-Signature"  ; Our signature
	  "smtp.gmail.com") ; stmpmail-smpt-server
	,(set-mu4e-context ; Defining a second account for fastmail
	  "Fastmail" 
	  "User-Name" 
	  "my-address@fastmail.com" 
	  "Second\nSignature"
	  "smtp.fastmail.com"))) ;Define smtp for fastmail.com

Τώρα απλά τρέξε M-x RET mu4e και επέστρεψε στην δουλεία!

Good luck~

6 «Μου αρέσει»

@ThanosApollo βάλε και μια επιλογή στο τέλος του site εκτός από κοινωνικά μέσα, κάτι σαν αστεράκι για επιλογή σε όσους αρέσουν τα άρθρα σου.

2 «Μου αρέσει»

Καλή ιδέα! Ακόμα είναι in-progress, όποτε θα κάνω μικρο αλλαγές στο μέλλον.

2 «Μου αρέσει»