GithubHelp home page GithubHelp logo

hasmail's Introduction

This project has been rewritten in Rust, and is now maintained under https://github.com/jonhoo/buzz/.


Introduction

Using mutt (or pine), but annoyed that it doesn't give you any notifications when you've received new emails? hasmail is a simple tray application that detects new emails on IMAP servers using IDLE (push rather than pull). When it detects unseen messages, it shows a OSD style notification and changes the tray icon to indicate that you have new mail.

When hovering the mouse over the tray icon, hasmail shows which of the configured accounts have unseen messages. Clicking the icon executes a user-defined command.

Configuration

hasmail looks for ~/.hasmailrc and expects a file in simple INI syntax. The configuration file consists of (currently) one global option and one or more accounts, each with multiple fields.

Global fields

  • click: this command will be executed when clicking the tray icon

Account fields

The value in [] can be anything, and will be what is shown in the tooltip. The options for an account are as follows:

  • hostname: The address (+ port) to connect to. MUST currently be SSL/TLS enabled. Required.
  • username: Username for authentication. Required.
  • password: Command to execute to get password for authentication. Required.
  • click: An optional command to execute when clicking the tray icon if this, and only this, account has new messages. If this option is present, it overrides the global click option in the described scenario.
  • folder: What folder to check for new messages. INBOX is the default.
  • poll: How often (in minutes) to force a recheck of the account. By default it is set to 29 (as suggested in the spec) to avoid the server disconnecting us due to inactivity.

Installation

Assuming you've checked this out into $GOPATH/src/hasmail, just run go install hasmail. If your path is set up correctly, you should be able to run hasmail and get the message "Failed to load configuration file, exiting...". Create your config and you're ready!

If you're lucky enough to be running Arch Linux, you can just install the package from the AUR or run makepkg in pkg/.

Major dependencies

License

Use this code for whatever you want if you find it useful. You don't need to put any attribution (even though I'd be happy if you did), but please let me know if you use it for anything interesting!

hasmail's People

Contributors

doronbehar avatar jonhoo 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

Watchers

 avatar  avatar  avatar  avatar

hasmail's Issues

Can hardly distinguish icon variations - how to change them?

Hello,
Thanks for this tool ! been looking for something like this for a while.

I have an issue with the tray icons; i can hardly distinguish the variations.

Is there a way to change them?
I've checked the source code but i don't understand where the icons are coming from

Thanks

OSD not shown

Hi!
1st of all, nice work!
I'm pleasantly surprised about the flexibility in the password field, setting up it with my gpg keys is stupidly simply.

I'm still testing hasmail but I'm not seeing any OSD notification.
I'm using arch with a minimal fluxbox setup, I don't know if I need an additional pkg for that :-(

One more thing, I've tried AUR for building the arch pkg but PKGBUILD is wrong, actually "go" does not provide /etc/default/go.sh, so makepkg crash (I can't comment on the AUR section of arch community).
Thanks!

Security trouble

Really you print the password at line 48 in connect.go?!?!?

fmt.Printf("login %s '%s' '%s'\n", address, username, password)

Why?

Feature request: to use `hasmail` with a local maildir?

Hello,

I really enjoy using hasmail and it is really stable but I would really like to use it with a synced local maildir. I use mbsync to sync my mail on my machine and I use systemd timers to sync it periodically.

I would like to use hasmail to check for new mail on a local maildir. The idea is to have a single program that syncs the mail and not having a secondary program that performs another IMAP connection to the server.

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.