Code Monkey home page Code Monkey logo

mutt-wizard's Introduction

mutt-wizard

https://muttwizard.com/

Get this great stuff without effort:

  • A full-featured and autoconfigured email client on the terminal with neomutt
  • Mail stored offline enabling the ability to:
    • view and write emails while you're away from the internet
    • make backups
  • Provides a mailsync script that can be scheduled to run as often as you like, which downloads/syncs mail and optionally notifies you when new mail has arrived.

Specifically, this wizard:

  • Determines your email server's IMAP and SMTP servers and ports
  • Creates dotfiles for neomutt, isync, and msmtp appropriate for your email address
  • Encrypts and locally stores your password for easy remote access, accessible only by your GPG key
  • Handles as many as nine separate email accounts automatically
  • Auto-creates bindings to switch between accounts or between mailboxes
  • Provides sensible defaults and an attractive appearance for the neomutt email client
  • If mutt-wizard doesn't know your server's IMAP/SMTP info by default, it will prompt you for them and will put them in all the right places.

Install

Dependencies

  • neomutt - the email client. (If you are using Gentoo GNU/Linux, you will need the sasl use flag to be enabled)
  • curl - tests connections (required at install).
  • isync - downloads and syncs the mail (required if storing IMAP mail locally).
  • msmtp - sends the email.
  • pass - safely encrypts passwords (required at install).
  • ca-certificates - required for SSL. Probably installed already.
  • gettext - writes config files. Probably installed already.

Note: There's a chance of errors if you use a slow-release distro like Ubuntu, Debian, or Mint. If you get errors in neomutt, install the most recent version manually or manually remove the offending lines in the config in /usr/share/mutt-wizard/mutt-wizard.muttrc.

git clone https://github.com/LukeSmithxyz/mutt-wizard
cd mutt-wizard
sudo make install

A user of Arch-based distros can also install the current mutt-wizard release from the AUR as mutt-wizard, or the Github master branch, mutt-wizard-git.

Optional Dependencies

  • pam-gnupg - Automatically logs you into your GPG key on login so you will never need to input your password once logged on to your system. Check the repo and directions out here.
  • lynx - view HTML email in neomutt.
  • notmuch - index and search mail. Install it and run notmuch setup, tell it that your mail is in ~/.local/share/mail/ (although mw will do this automatically if you haven't set notmuch up before). You can run it in mutt with ctrl-f. Run notmuch new to process new mail.
  • abook - a terminal-based address book. Pressing tab while typing an address to send mail to will suggest contacts that are in your abook.
  • urlview - outputs urls in mail to browser.
  • cronie - (or any other major cronjob manager) to set up automatic mail syncing.
  • mpop - If you want to use POP protocol instead of IMAP.

Usage

The mutt-wizard runs via the command mw. Once setup is complete, you'll use neomutt to access your mail.

  • mw -a [email protected] -- add a new email account
  • mw -l -- list existing accounts
  • mw -d -- choose an account to delete
  • mw -D [email protected] -- delete account settings without confirmation
  • mw -t 30 -- toggle automatic mailsync to every 30 minutes
  • mw -T -- toggle mailsync without specifying minutes (default is 10)
  • mw -r -- reorder account shortcut numbers
  • pass edit [email protected] -- revise an account's password
  • mailsync -- sync all configured email accounts. Also gives notifications of new mail and indexes new mail with notmuch silently.
  • mailsync [email protected] -- sync a particular (or several) email account(s).

Options usable when adding an account

Providing arguments

  • -u -- Give an account username if different from the email address.
  • -n -- A real name to be used by the account. Put in quotations if multiple words.
  • -i -- IMAP server address
  • -I -- IMAP server port (otherwise assumed to be 993)
  • -s -- SMTP server address
  • -S -- SMTP server port (otherwise assumed to be 465)
  • -m -- Maximum number of emails to be kept offline. No maximum is default functionality.
  • -x -- Account password. You will be prompted for it otherwise.

General Settings

  • -f -- Assume mailbox names and force account configuration without connecting online at all.
  • -o -- Configure mutt for an account, but do not keep mail offline.
  • -p -- Use POP protocol instead of IMAP (requires mpop installed).
  • mailsync gives visual messages of new mail by default. Or, set MAILSYNC_MUTE=1 as an environmental variable if you prefer not having them.

Neomutt user interface

To give you an example of the interface, here's an idea:

  • m - send mail (uses your default $EDITOR to write)
  • j/k and d/u - vim-like bindings to go down and up (or d/u to go down/up a page).
  • l - open mail, or attachment page or attachment
  • h - the opposite of l
  • r/R - reply/reply all to highlighted mail
  • s - save selected mail or selected attachment
  • gs,gi,ga,gd,gS - Press g followed by another letter to change mailbox: sent, inbox, archive, drafts, Spam, etc.
  • M and C - For Move and Copy: follow them with one of the mailbox letters above, i.e. MS means "move to Spam".
  • i# - Press i followed by a number 1-9 to go to a different account. If you add 9 accounts via mutt-wizard, they will each be assigned a number.
  • a to add address/person to abook and Tab while typing address to complete one from abook.
  • ? - see all keyboard shortcuts
  • ctrl-j/ctrl-k - move up and down in sidebar, ctrl-o opens mailbox.
  • ctrl-b - open a menu to select a URL you want to open in your browser.
  • p - encrypt/sign your message (in compose view, before sending the email).

Additional functionality

  • pam-gnupg - Automatically logs you into your GPG key on login, so you will never need to input your password once logged on to your system. Check the repo and directions out here.
  • lynx - View HTML email in neomutt.
  • notmuch - Index and search mail. Install it and run notmuch setup, tell it that your mail is in ~/.local/share/mail/ (although mw will do this automatically if you haven't set notmuch up before). You can run it in mutt with ctrl-f. Run notmuch new to process new mail.
  • abook - A terminal-based address book. Pressing tab while typing an address to send mail to will suggest contacts that are in your abook.
  • urlview - Outputs URLs in an email to your browser.

New stuff and improvements since the original release

  • mw is now scriptable with command-line options and can run successfully without any interaction, making it possible to deploy in a script.
  • isync/mbsync has replaced offlineimap as the backend. Offlineimap was error-prone, bloated, used obsolete Python 2 modules, and required separate steps to install the system.
  • mw is now an installed program instead of just a script needed to be kept in your mutt folder.
  • dialog is no longer used and the interface is simply text commands.
  • More autogenerated shortcuts that allow quickly moving and copying mail between boxes.
  • More elegant attachment handling. Image/video/pdf attachments without relying on the neomutt instance.
  • abook integration by default.
  • The messy template files and other directories have been moved or removed, leaving a clean config folder.
  • msmtp configs moved to ~/.config/ and mail default location moved to ~/.local/share/mail/, reducing mess in ~.
  • pass is used as a password manager instead of separately saving passwords.
  • Script is POSIX sh compliant.
  • Error handling for the many people who don't read or follow directions. Fewer errors generally.
  • Addition of a manual man mw
  • Now handles POP protocol via mpop for those who prefer it (add an account with the -p option). POP configs are still generated automatically.

Help the Project!

  • Try mutt-wizard out on weird machines and weird email addresses and report any errors.
  • Open a PR to add new server information into domains.csv so their users can more easily use mutt-wizard.
  • If nothing else, donate:
    • XMR: 8AzeWXhJvYJ1VeENHcNXCR1dLMgDALreZ1BdooZVjRKndv6myr3t1ue6C4ML2an5fWSpcP1sTDA9nKUMevkukDXG6chRjNv
    • BTC: bc1qacqfp36ffv9mafechmvk8f6r8qy4tual6rcm9p

Details for Tinkerers

  • The critical mutt/neomutt files are in ~/.config/mutt/.
  • Put whatever global settings you want in muttrc. mutt-wizard will add some lines to this file, which you shouldn't remove unless you know what you're doing, but you can move them up/down over your config lines if you need to. If you get binding conflict errors in mutt, you might need to do this.
  • Each of the accounts that mutt-wizard generates will have custom settings set in a separate file in accounts/. You can edit these freely if you want to tinker with settings specific to an account.
  • In /usr/share/mutt-wizard are several global config files, including mutt-wizard's default settings. You can override this in your muttrc if you wish.

Watch out for these things

  • Gmail accounts need to create an App Password to use with "less secure" applications. This password is single-use (i.e. for setup) and will be stored and encrypted locally. Enabling third-party applications requires turning off two-factor authentication and this will circumvent that. You might also need to manually "Enable IMAP" in the settings.
  • If you have a university email or enterprise-hosted email for work, there might be other hurdles or two-factor authentication you have to jump through. Some, for example, will want you to create a separate IMAP password, etc.
  • isync is not fully UTF-8 compatible, so non-Latin characters may be garbled (although sync should succeed). mw will also not auto-create mailbox shortcuts since it is looking for English mailbox names. I strongly recommend you to set your email language to English on your mail server to avoid these problems.

License

mutt-wizard is free/libre software. This program is released under the GPLv3 license, which you can find in the file LICENSE.

mutt-wizard's People

Contributors

alembiq avatar alexbocken avatar alps2006 avatar ask1234560 avatar avdrob avatar aymanbagabas avatar bachoseven avatar blinklad avatar durcor avatar epsilon-0 avatar f380cedric avatar g-w1 avatar ghalv avatar iilonmasc avatar insanerwayner avatar kiprasmel avatar kr1ss-xd avatar lukas-mertens avatar lukesmithxyz avatar luukvbaal avatar meain avatar niklasfyi avatar rjl6789 avatar sahidvelji avatar scattenlaeufer avatar schueni1 avatar shane-xb-qian avatar smartding avatar vladdoster avatar zethjack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mutt-wizard's Issues

Can't run offlinemap after creating Gmail-account

thanks for the script and the idea to make mutt easier to use for beginners.
I tried to setup neomut using mutt-wizard but run into a problem that I can't run offlineimap after adding my gmail-account and reaching the step:

The account "Gmail" has been added.
Now finalize the installation, do the following:
[...]

I opened a 2nd terminal and entered: offlineimap but run into several error messages:

[user@my-untrusted ~]$ offlineimap
Traceback (most recent call last):
File "/usr/bin/offlineimap", line 23, in
oi.run()
File "/usr/lib/python2.7/site-packages/offlineimap/init.py", line 51, in run
options, args = self.__parse_cmd_options()
File "/usr/lib/python2.7/site-packages/offlineimap/init.py", line 199, in __parse_cmd_options
config.set_if_not_exists('general', 'dry-run', 'False')
File "/usr/lib/python2.7/site-packages/offlineimap/CustomConfig.py", line 132, in set_if_not_exists
self.set(section, option, value)
File "/usr/lib64/python2.7/ConfigParser.py", line 753, in set
ConfigParser.set(self, section, option, value)
File "/usr/lib64/python2.7/ConfigParser.py", line 396, in set
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'general'

I thought that mutt-wizard will create the needed configuration files, but ~/.offlineimaprc is an empty file.

Any idea how to proced?

About my system:
I am running Qubes 4rc4 with a Fedora 26 based AppVM.
I have installed neomutt dialog, offlineimap and neomutt using these steps within the default fedora 26 template:

Install offlineimap and dialog:
dnf -y install dialog offlineimap dialog

to install neomutt in fedora:
Link: https://www.neomutt.org/distro/fedora
sudo dnf install dnf-plugins-core
sudo dnf copr enable flatcap/neomutt
sudo dnf -y install neomutt

OFFLINEIMAP:
Version: 6.7.0

DIALOG:
Version: 1.3-20170131

NEOMUTT:
Version: NeoMutt 20171215

System: Linux 4.9.56-21.pvops.qubes.x86_64 (x86_64)
ncurses: ncurses 6.0.20170212 (compiled with 6.0)
libidn: 1.33 (compiled with 1.33)

  • P.

[offlineimap] SSL: CERTIFICATE_VERIFY_FAILED on imap.gmail.com after upgrading to OpenSSL 1.1.1

Hello everyone, just a heads up for those running mutt-wizard on a more bleeding edge distro, or even on a distro that ships the new OpenSSL version 1.1.1 package.

Update openssl to 1.1.1-1 breaks recognition of imap.gmail.com certificate.
Source

The temporary workaround for offlineimap to continue working (for me) was to set ssl_version=tls1_2 on the remote Repository
Source

It's probably a good idea to wait for this to be patched upstream.

Good luck in the meanwhile guys.

Handle imap Trash folder

Hi, I found that deleted mails are not move to Trash but definitively deleted.
I think it will be a good idea to add trash folder handling by adding
set trash = "+Trash"
at the end of the accounts rc files.

mutt-wizard and Davmail - how to make it work!

the default configuration from neomutt will not work if you try to use mutt-wizard to connect to Davmail.
Davmail can be used to provide local IMAP and SMTP while beeing connected to a Microsoft Exchange Server.
Thereof it is possible to connect to a recent Microsoft Exchange using neomutt.
This is the setup to get offlineimap sync emails from our exchange server using Davmail.
Most important is to set remoteport entry which must be identical in Davmail.

[general]
ui = ttyui
starttls = no
ssl = no
accounts = workmail

[Account workmail]
localrepository = workmail-Local
remoterepository = workmail-Remote

[Repository workmail-Local]
type = Maildir
localfolders = ~/Mail/workmail

[Repository workmail-Remote]
type = IMAP
remotehost = localhost
remoteuser = <USERNAME>
remotepass = <PASSWORD>
remoteport = 1143
realdelete = no
ssl = no
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

maybe this helps to make mutt-wizard smarter, when running Davmail?
If you run the current version of the installer, you will not get a working config as SSL is enabled and the remoteport is not set correctly.

PR

mutt-wizard problems

Short intro -> love arch linux, i3, emacs, cli. Been using mu4e for years but multiple email accounts are pain, don't get emacs 'contexts'. Looked for alternative, found mutt, found your script 'mutt-wizard' gave it a try ... no success. I'm not newbee, but not programmer (hydrogeologist by profession, english is still my primary language, not programmer speak..).


Here is my original .offlineimaprc for this account ( I added line numbers for reference):

  1. accounts = frank

  2. maxsyncaccounts = 3

  3. [Account frank]

  4. localrepository = franklocal

  5. remoterepository = frankremote

  6. [Repository franklocal]

  7. type = Maildir

  8. localfolders = /mnt/Maildir/BGM/

  9. [Repository frankremote]

  10. type = IMAP

  11. remoteport = 143

  12. remotehost = imap.**ndwa.com

  13. remoteuser = frank@**ndwa.com

  14. remotepass = *****

  15. ssl = no

  16. maxconnections = 5

  17. realdelete = true

  18. truedelete = True

  19. sslcacertfile = /etc/ssl/certs/180123_**ndwa.com.key


Here is mutt-wizard .offlineimaprc for this account ( I added line numbers for reference):

  1. [general]

  2. accounts = frank

  3. starttls = yes

  4. ssl = yes

  5. pythonfile = ~/.config/mutt/credentials/imappwd.py

  6. [Account frank]

  7. localrepository = frank-local

  8. remoterepository = frank-remote

  9. [Repository frank-remote]

  10. type = IMAP

  11. remoteuser = frank@**ndwa.com

  12. sslcacerfile = /etc/ssl/cets/ca-certificates.crt

  13. remotepasseval = mailpasswd("frank")

  14. remotehost = imap.**ndwa.com

  15. port = 143

  16. sslcacertfile = /etc/ssl/certs/ca-certificates.crt

  17. [Repository frank-local]

  18. type = Maildir

  19. localfolders = ~/.mail/frank
    =====================================================
    Here are my questions:

A. Line 15 of your file -> 'port = 143', the port number kept coming up 993 until I found this, I changed this to 'remoteport = 143', -> no success

B. Line 12 of your file -> 'sslcacerfile = /etc/ssl/cets/ca-certificates.crt', I think this is an error as there is no file by that name or directory, I removed it -> no success

C. Line 16 of your file -> ' sslcacertfile = /etc/ssl/certs/ca-certificates.crt ' , I already have a certfile for this account, so I replaced this with my account (my Line 19 )->
' sslcacertfile = /etc/ssl/certs/180123_**ndwa.com.key ' -> no success

D. changed lines 03 and 04 to -> ' starttls = no ' and ' ssl = no ' -> no success


I get this error on offlineimap:
OfflineIMAP 7.1.5
Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (bundled), Python v2.7.14, OpenSSL 1.1.0g 2 Nov 2017
Account sync frank:
*** Processing account frank
Establishing connection to imap.**ndw.com:143 (frank-remote)
ERROR: Could not connect via SSL to host 'imap.**ndw.com' and non-standard ssl port 143 configured. Make sure you connect to the correct port. Got: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:661)


Thanks, any idea what I am doing wrong??
Thanks,
Geoguy

autosync: sendmail: Account default not found

When I enable autosync using the wizard, it does not automatically receive mails.

The output of systemctl status crond.service is

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-10-14 00:47:27 CEST; 1 weeks 0 days ago
 Main PID: 1501 (crond)
    Tasks: 1 (limit: 4915)
   Memory: 4.7M
   CGroup: /system.slice/crond.service
           └─1501 /usr/sbin/crond -n
Okt 21 15:23:01 chswb-laptop crond[1501]: sendmail: Account default nicht in /home/chswb/.msmtprc gefunden

which in English would be

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-10-14 00:47:27 CEST; 1 weeks 0 days ago
 Main PID: 1501 (crond)
    Tasks: 1 (limit: 4915)
   Memory: 4.7M
   CGroup: /system.slice/crond.service
           └─1501 /usr/sbin/crond -n
Oct 21 15:23:01 chswb-laptop crond[1501]: sendmail: Account default not found in /home/chswb/.msmtprc

Sending mail in neomutt works, and I can also receive mails by running the mailsync.sh script manually or pressing o in neomutt.

(fedora 28, NeoMutt 20180716, msmtp Version 1.6.7, offlineimap 7.1.5)

Errors when launching mutt after wizard

When launching mutt I'm getting these errors.

Error in /home/wayne/.config/mutt/accounts/Outlook.muttrc, line 29: +sent-mail: unknown command
Error in /home/wayne/.config/mutt/accounts/Outlook.muttrc, line 30: +Sent: unknown command
Error in /home/wayne/.config/mutt/accounts/Outlook.muttrc, line 32: +Drafts: unknown command
Error in /home/wayne/.config/mutt/personal.muttrc, line 2: source: errors in /home/wayne/.config/mutt/accounts/Outlook.muttrc
Error in /home/wayne/.config/mutt/muttrc, line 7: source: errors in /home/wayne/.config/mutt/personal.muttrc
Error: impossible to build path of 'etc/aliases'.
Error in /home/wayne/.config/mutt/muttrc, line 8: 
source: errors in /home/wayne/.config/mutt/muttrc
Error: issue converting path to absolute (No such file or directory)Press any key to continue...

Then once I go ahead and continue it shows all my folders like it should but when I do the keybindings to get to them it is not behaving, saying something either key not bound or there are no messages

GPG description failed on Mac

I have tried to the installation of the wizard multiple times and it always get this error:

screen shot 2018-09-06 at 8 09 02 pm

Computer: MacBook Pro 13-inch, 2017
I have installed all the depencies.

My GPG installation is located at: /usr/local/bin/gpg

I tried to created soft link by doing sudo ln -s /usr/local/bin/gpg /usr/bin/gpg but I got "Operation not permitted". This seem to be a Mac issue - Cannot create a symlink inside of /usr/bin even as sudo

Whenever I tried to open Mutt, I get this error ~/.mbox: No such file or directory (errno = 2)

Have anyone run into this issue before?

can't send email from GMAIL: No authenticators available

Trying to send out email via GMAIL it seems that there is an issue.
When sending emails from neomutt via my GMAIL account I get the error

No authenticators available

The setup of offlineimap via mutt-wizard worked and offlineimap is working. Sending emails isn't.
I have verified all config files and the part which is handling outgoing emails seems to be:

~/.configure/mutt/accounts/gmail.muttrc

# vim: filetype=neomuttrc
# muttrc file for account gmail
set realname = "gmail"
set from = "[email protected]"
set smtp_url = "smtp://[email protected]@smtp.gmail.com:587/"
set sendmail = "/usr/bin/msmtp -a gmail"
set folder = "~/.mail/gmail"
set header_cache = ~/.config/mutt/accounts/gmail/cache/headers
set message_cachedir = ~/.config/mutt/accounts/gmail/cache/bodies
set certificate_file = ~/.config/mutt/accounts/gmail/certificates
source "~/.config/mutt/credentials/getmuttpass gmail |"

set mbox_type = Maildir
set ssl_starttls = yes
set ssl_force_tls = yes

bind index,pager gg noop
bind index,pager g noop
bind index gg first-entry
unmailboxes *
mailboxes =gmail =------------------- "=[Gmail].Markiert" "=INBOX" "=[Gmail].Spam" "=[Gmail].Entw&APw-rfe$
macro index,pager gi "<change-folder>=INBOX<enter>" "Go to inbox."
macro index,pager gS "<change-folder>=[Gmail].Spam<enter>" "Go to spam."
set spoolfile = "+INBOX"
set record = ""
set postponed = ""

From what I see, mutt-wizzard has configured msmtp to send out email and calls it for the profile gmail...

set sendmail = "/usr/bin/msmtp -a gmail"

... but there is no msmtp configuration file ~/.msmtprc.

QUESTION:
Is this the problem, why sending out emails is not working under Gmail?

Insecure and destructive /tmp usage

The script uses /tmp in insecure and possibly destructive ways. Example:

rm -f /tmp/log /tmp/lognew
offlineimap --info -a $1 2&> /tmp/log

If another application or script is using /tmp/log or /tmp/lognew, this may delete another application's data.

Please consider using "mktemp -d" to create your own tmp-directory and use that.

offlineimap asking for account passwords

Hi,
I finished configuring two accounts with the awesome script.
When I start offlineimap to sync the directories, I'm asked to enter the account passwords again, for both the 1und1-account and the GMail-account.

What am I doing wrong? Or is this intended?

gpg2 is installed, a key pair was created before.

`OfflineIMAP 7.1.2
Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (system), Python v2.7.14, OpenSSL 1.0.2g 1 Mar 2016

Account sync xxxxxx:
*** Processing account xxxxxx
Establishing connection to imap.1und1.de:993 (xxxxxx-remote)
Enter password for account 'xxxxxx-remote':`

Permission Issue Creating Temp Email File

I just successfully added one of my accounts using the wizard, but I noticed that when I attempt to send an email, it tries to make the temp file for the email, and I get a permission denied error, leaving me unable to continue with typing my message. When I exit neomutt, I see an error like the following:

sh: /tmp/neomutt-(blah): Permission Denied

I know this isn't an issue with the wizard, but any ideas why this happens? I'm so close to hopefully sending my first email with neomutt, and I'm stuck on this :/

protonmail bridge

Hello, Protonmail have a bridge now which give you an IMAP and SMTP addrees at 127.0.0.1 but it doesn't seems to work with the wizard. I filled in all of the info and it seems like the bridge doesn't support ssl.

I use macOS Mojave

λ offlineimap
OfflineIMAP 7.2.1
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (bundled), Python v2.7.15, OpenSSL 1.0.2p  14 Aug 2018
Account sync proton:
 *** Processing account proton
 Establishing connection to 127.0.0.1:1143 (proton-remote)
 ERROR: Could not connect via SSL to host '127.0.0.1' and non-standard ssl port 1143 configured. Make sure you connect to the correct port. Got: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:726)
 *** Finished account 'proton' in 0:00
ERROR: Exceptions occurred during the run!
ERROR: Could not connect via SSL to host '127.0.0.1' and non-standard ssl port 1143 configured. Make sure you connect to the correct port. Got: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:726)

Traceback:
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/accounts.py", line 283, in syncrunner
    self.__sync()
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/accounts.py", line 359, in __sync
    remoterepos.getfolders()
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/repository/IMAP.py", line 452, in getfolders
    imapobj = self.imapserver.acquireconnection()
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/imapserver.py", line 633, in acquireconnection
    exc_info()[2])
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/imapserver.py", line 547, in acquireconnection
    af=self.af,
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/imaplibutil.py", line 194, in __init__
    super(WrappedIMAP4_SSL, self).__init__(*args, **kwargs)
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/bundled_imaplib2.py", line 2183, in __init__
    IMAP4.__init__(self, host, port, debug, debug_file, identifier, timeout, debug_buf_lvl)
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/bundled_imaplib2.py", line 361, in __init__
    self.open(host, port)
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/imaplibutil.py", line 202, in open
    super(WrappedIMAP4_SSL, self).open(host, port)
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/bundled_imaplib2.py", line 2196, in open
    self.ssl_wrap_socket()
  File "/usr/local/Cellar/offlineimap/7.2.1/libexec/offlineimap/bundled_imaplib2.py", line 548, in ssl_wrap_socket
    self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile, ca_certs=self.ca_certs, cert_reqs=cert_reqs, ssl_version=ssl_version)
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 949, in wrap_socket
    ciphers=ciphers)
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 617, in __init__
    self.do_handshake()
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 846, in do_handshake
    self._sslobj.do_handshake()

[Fix] SASL Authentication failed when sending email.

So i remember on the previous commit, The setup is asking about Gmail SMTP Server name and Gmail SMTP Port.

Then after this current version release, The setup doesn't ask you to manually add the SMTP Server name/Port thing, And so the email refusing to send because of the SASL Auth. So i search around the Internet and finally found the fix.

So incase you have this problem too, just add these line to get it work.

 set imap_user = "[email protected]"
 set imap_pass = "YourPassword"
 set smtp_url = "smtp://[email protected]:587/"
 set smtp_pass = "YourPassword"
 set from = "[email protected]"
 set realname = "John Doe"

Issue with sending email "Interrupted system call"

I've tried to send email via a cock.li email account, although it doesn't seem to actually send an email, it rather just gives me a "Interrupted system call" after 30 seconds of silence. I did make sure that I had msmtp installed.

Error Sending Mail After Adding A/I Account

I have added 2 different Autistici/Inventati accounts using mutt-wizard, but when I go to send an email with either account, the email cannot be sent. Upon pressing the key to send, the bottom of Neomutt says "connecting to smtp.autistici.org..." for about 5 minutes. After this, it says "SMTP session failed: read error". I added a cock.li email using the wizard, and was able to start sending email without any other config.

There is 1 workaround that I know of, which is to comment out the "set smtp_url" line in the account's muttrc file, and then create a ~/.msmtprc file containing something like this:

account myemail
port 587
from [email protected]
user [email protected]
password [password in plain text]
auth on
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
host smtp.autistici.org
tls_certcheck on

This is not an ideal solution, since now I have my password in plain text, and my account information is being maintained in another file not controlled by mutt-wizard.

Some other things I tried individually include:

  • in the "set smtp_url" line of the account's muttrc, change the port number from 465 to 587. This causes me to immediately get a 'SASL authentication failed' when sending.

  • In the "set sendmail" line of the account's .muttrc, I tried adding the following on the end of the command to match what I have above in the msmtprc: "--tls=on --tls-starttls=on --tls-trust-file=/etc/ssl/certs/ca-certificates.crt --tls-certcheck=on". After adding this, I get the same result where it keeps saying it's connecting for 5 mins.

I know this isn't really a fault of the wizard, but any advice on how I can resolve this in a way that will pull my password from the keyring like everything else?

Feature requests

pls consider implementing these feature:

Ctrl-R to mark all as read
macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"

sync email
macro index O "<shell-escape>offlineimap<enter>" "run offlineimap to sync all mail"
macro index o "<shell-escape>offlineimap -qf INBOX<enter>" "run offlineimap to sync inbox"

copy/move dialogs
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"i

might also be interesting : Viewing HTML https://wiki.archlinux.org/index.php/Mutt#Viewing_HTML and setting up mailcap (both have been implemented in my configs and work great!)

adding notmuch (fast search) to mutt-wizard

As mutt-wizard is targeted towards newbie users, you might want to add notmuch to the setup/configuration process or at least mentioned it:
https://notmuchmail.org
If notmuch is installed you only need to do the following steps to get a fast email search on your commandline:

notmuch setup && notmuch new

a dot in short name cause it fail

Started creating a mailbox with the setup script, called the shortname "..gmail"
OfflineImap synced the mailbox correctly, all directories looked ok.
But starting Neomutt, it fails miserably with ".... is not a mailbox"
I scratched my head for a long time and erased all configuration and run it again with a shortname "mhgmail"... and resynced again , and now it works.

If this is a valid issue, create a check in the setup script checking for a dot in the short and reject it.

Python traceback error

This Error occured when im starting to sync the email offlineimap -a Personal
It was worked before on my AntiX Linux, until i moved out to Arch.

Traceback (most recent call last):
  File "/usr/bin/offlineimap", line 22, in <module>
    oi.run()
  File "/usr/lib/python2.7/site-packages/offlineimap/init.py", line 89, in run
    options, args = self.__parse_cmd_options()
  File "/usr/lib/python2.7/site-packages/offlineimap/init.py", line 265, in __parse_cmd_options
    config.set_if_not_exists('general', 'dry-run', 'False')
  File "/usr/lib/python2.7/site-packages/offlineimap/CustomConfig.py", line 135, in set_if_not_exists
    self.set(section, option, value)
  File "/usr/lib/python2.7/ConfigParser.py", line 753, in set
    ConfigParser.set(self, section, option, value)
  File "/usr/lib/python2.7/ConfigParser.py", line 396, in set
    raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'general'

dotfiles empty

I'm trying to setup mutt with this, however when adding an account .offlineimaprc, and .msmtprc config files are beeing created but empty.
I had both msmstp and offlinimap setup before but moved .offlineimaprc, .offlineimap/ and .msmtprc out of the way so it would'nt interfere. Is there anything else I must (re)move to make this work?

License

Hi, is it possible to release mutt-wizard under a free software license?

PGP encrypted password

I have just skimmed over the scripts - but doesn't this

cat "$muttdir"autoconf/mutt_profile | sed -e "$replacement" > "$muttdir"accounts/$title.muttrc
means that we will have password in a plaintext (gpg decrypted) saved to the filesystem? (both in .muttrc and .msmtprc)

I must be missing something (didn't try to install it)

~/.mail/"account-name"/INBOX is not a mailbox

In my "account-name".muttrc file was the following line:
set spoolfile = "+INBOX"
Somehow mutt is here case sensitive but changing it to
set spoolfile = "+Inbox"
resolved the issue.
(this only happened for my ymail account)

Interestingly enough for my other account it has to be all caps..

mutt-wizard and Qubes OS

I had to do some tweaks to be able to use mutt-wizard and setup offlineimap + neomutt under Qubes OS.
In Qubes OS I'm running SplitGPG which separates the GPG-keys into an own "AppVM".
For further information:

I had to do some changes so that mutt-wizard will use qubes-gpg-client instead of the default gpg2.
Additionally I had to create the encrypted password manually after I've added my email-account via mutt-wizard

qubes-gpg-client -a --encrypt -r ~/.config/mutt/credentials/.gpg

is used to identify the GPG-key you would like to use in the Vault-VM (SplitGPG-repository) and is the name you gave the accont in mutt-wizard.

QUESTION:
how should I contribute as the setup is only for users running Qubes OS and I don't want to "damage" the scripts for all other users.
I'm thinking of adding the information to the qubes-docs repository (?) what do you think?

The following changes have been made to get mutt-wizard working under Qubes:

  1. replace gpg2 with qubes-gpg-client in mutt-wizard.sh
  2. replace gpg2 with qubes-gpg-client in credentials/getmuttpass
  3. replace gpg2 with qubes-gpg-client in credentials/imappwd.py

Wizard creates wrong Gmail mailbox names in <Gmail alias>.muttrc

After using the wizard to configure mutt with a Gmail account, the <Gmail alias>.muttrc file created in ~/.config/mutt/accounts contains incorrect mailbox names which throw errors when sending mail or changing mailboxes.

Default names don't work but editing the mailbox name in the mappings of ~/.config/mutt/accounts/<Gmail alias>.muttrc creates new mailboxes which work in mutt.

Error after command 'offlineimap -a athena'

OfflineIMAP 6.6.1
Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
Account sync athena:
*** Processing account athena
Establishing connection to imap.gmail.com:993
gpg: decryption failed: No secret key
Enter password for account 'athena-remote':

Hint for documentation: list depending packages

As mutt-wizard is targeted towards new customers the README should mention all packages/applications which are configured in a default installation.
Example: ../etc/mailcap

(...)
text/html; w3m -I %{charset} -T text/html; copiousoutput;
(...)

Thereof w3m should be installed.
Same for mupdf etc.

[MacOS] Cannot run offlineimap ( no accounts are defined )

I am having issue when running offlineimap

OfflineIMAP 7.1.5
  Licensed under the GNU GPL v2 or any later version (with an OpenSSL exception)
imaplib2 v2.57 (bundled), Python v2.7.10, LibreSSL 2.2.7
ERROR: The account '' does not exist
ERROR: Exceptions occurred during the run!
ERROR: The account '' does not exist
No accounts are defined!

~/.offlineimap

[general]
accounts =
starttls = yes
ssl = yes
pythonfile = ~/.config/mutt/credentials/imappwd.py

[Account gmail]

localrepository = gmail-local
remoterepository = gmail-remote

[Repository gmail-remote]
auth_mechanisms = LOGIN
type = Gmail
remoteuser = [email protected]
sslcacerfile = /etc/ssl/cets/ca-certificates.crt
remotepasseval = mailpasswd("gmail")
remoteport = 993
folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail']
sslcacertfile = /etc/ssl/certs/ca-certificates.crt

[Repository gmail-local]
type = Maildir
localfolders = ~/.mail/gmail

neomutt "... is not a mailbox" error

After running the wizard for the first time, setting up an email account (called daxmoe in this case), and running offlineimap, I'm getting an error within neomutt.

When I launch it, there are no emails to show, and it says "/home/dax/.mail/daxmoe is not a mailbox." at the bottom.

Let me know what other information you need.

GPG key pair

I'm trying to get the wizard to set up neomutt but having trouble with a few parts.
I'm using Arch on this computer. I am getting the error "GPG decryption failed." I did install the newest gnupg v2 and in the /usr/bin I have both gpg and gpg2.

What I have tried:
I moved the gpg to another folder and ln -s /usr/bin/gpg2 /usr/bin/gpg and visa versa. I have also tired to change in the three files gpg2 to gpg with no luck.

I think my problem is where at the beginning where it asks to "insert the email address with which you originally created your GPG key pair..." I don't thing that I actually did. If I did then it might not be finding that file to be able to decrypt.

If that is the case, how can I remake that file to beable to get this working properly? Thank you for your time. Loving the Rice btw. Really nice template to add my own customizations. Thank you.

Can't build path of /etc/aliases

Not exactly sure what's happening here. This is what happens when I open mutt
Error: impossible to build path of 'etc/aliases'.
Error in /home/user/.config/mutt/muttrc, line 8:
source: errors in /home/user/.config/mutt/muttrc
Error: issue converting path to absolute (No such file or directory)Press any key to continue...
Error: issue converting path to absolute (No such file or directory)Error: issue converting path to absolute (No such file or directory)

Bashisms in mailsync.sh

mailsync.sh will stop with an error on line 14. Presumably because it is a bash specific syntax. I fixed it with changing the head to "#!/bin/bash".

problem when changing password

Hi luke

First off; I'm a big fan of your work. I convincing other colleagues to also use mutt in addition to your wizard. Most of the sysadmin are Linux or Mac users and are eager to try your wizard out.

Anyways I recently changed my password to something containing $ characters. Since the change I was no longer able to send mail. After some digging I found that getmuttpass uses double quotes to set the password.

When I altered the " to ' in getmuttpass, everything worked fine again. I just wanted to let you know.

Thanks again for the great software.

Eli

IMAP accounts not working. Script gets stuck in detectMailboxes().

Behavior: program just stops at the last step. Can't even terminate it with ctrl+c.

It seems that the program gets stuck at detectMailboxes(), because there are user subfolders in account/ and ~/.mail. But apparently, at least in my case, for non-gmail accounts, the offlineimap command from the last function couldn't find any boxes. Maybe that's why it can't get through detecMailboxes().

No config written

I ran the config wizard, but no config was written.
The files were generated but .msmtprc and .offlinerc are completely empty and the personal files in .config/mutt/xyz are just filled with the names of the variables.

Might it be user error?? If yes, what could I have done wrong?

Credentials not stored correctly or not asked at all

I just tried to create an account using mutt-wizard and encountered some problems with my imap and smtp credentials:

First of all there seems to be noway to enter an user name for a mail account. Instead in .offlineimaprc the email adress is set as remoteuser, which won't work for any of my mail accounts. The smtp url gets created as smtp://$from@:$smtp_port ($from and $smtp_port are entered as the string values, not as variables. I just added them this way to make it more readable) and not as smtp://$smtp_user:$smtp_pass@$smtp_url:$smtp_port. Changing those settings the correct values manually made everything, so the rest seems to work as expected.

'...is not a mailbox error'

Getting '/home/guy/.mail/main/main is not a mailbox' error when trying to open synced mailbox.

Based on similar issue #41 , cmd outputs are as follows:

$ ls ~/.mail/daxmoe

'Flat 15'      '[Gmail].Drafts'     '[Gmail].Sent Mail'  '[Gmail].Starred'   Health   Personal      Receipts   Work
'[Gmail].Bin'  '[Gmail].Important'  '[Gmail].Spam'        Greenwich          INBOX   'Read Later'   Travel

$ cat ~/.config/mutt/accounts/daxmoe.muttrc

# vim: filetype=neomuttrc
# muttrc file for account main
set realname = "Guy Edwards"
set from = "[email protected]"
set smtp_url = "smtp://[email protected]@smtp.gmail.com:587/"
set sendmail = "/usr/bin/msmtp -a main"
set folder = "~/.mail/main"
set header_cache = ~/.config/mutt/accounts/main/cache/headers
set message_cachedir = ~/.config/mutt/accounts/main/cache/bodies
set certificate_file = ~/.config/mutt/accounts/main/certificates
source "~/.config/mutt/credentials/getmuttpass main |"

set mbox_type = Maildir
set ssl_starttls = yes
set ssl_force_tls = yes

bind index,pager gg noop
bind index,pager g noop
bind index gg first-entry
unmailboxes *
mailboxes =main =-------------------
set spoolfile = ""
set record = ""
set postponed = ""

$ offlineimap -a main --info

Folderlist:
 [Gmail]/All Mail (disabled)
 [Gmail]/Bin
 [Gmail]/Drafts
 [Gmail]/Important
 [Gmail]/Sent Mail
 [Gmail]/Spam
 [Gmail]/Starred
 INBOX
 Personal
 Read Later
 Receipts
 Travel
 Work

Local repository 'main-local': type 'Maildir'                                                                                                                                                   
Folderlist:                                                                                                                                                                                     
 Read Later
 [Gmail].Sent Mail
 Receipts
 [Gmail].Important
 [Gmail].Bin
 Travel
 Personal
 INBOX
 [Gmail].Starred
 [Gmail].Drafts
 Work
 [Gmail].Spam

No errors when running offlineimap -a main.

Any help would be greatly appreciated and thanks for creating mutt-wizard!

Mutt does not remember mailboxes' sizes

When you open up mutt, you apparently use your 1st (default) account. And in that default account mutt correctly displays sizes of your mailboxes on sidebar right away. Therefore, it is capable of capturing those sizes while sourcing account's config.
Now you source your 2nd account. And mutt no longer displays correct sizes, except INBOX. It considers the others to be empty until you literally go to them (gs, gt etc.). Moreover, if you go back to your 1st account, the same thing happens: you have to go to corresponding mailboxes to make sure they're non-empty.

I did not succeed in searching for an option which would make it remember contents of the whole tree after sourcing. Obviously, the needed functionality is hidden under the hood. Maybe you have a better understanding of what's happening?

Google Mailboxes

Is there a way to re-scan mailboxes? Am just wondering because some folders from my gmail account are not showing (sent mail, all mail, drafts) I have a mail box labelled [Google] but when i try to open it i get the error msg thats its not a mailbox

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.