Update 3-22-19: It appears that the plugin is broken, dead, and abandoned by its creator. I currently know of no other way to send notifications besides Twilio or IFTTT.
I have OctoPrint (via OctoPi) setup and I wanted a way to be notified when my print was done without constantly walking into the garage. So I searched the plugins one day and found the Email Notifier.
After I installed it I could not get it to work for the life of me. I followed the instructions of adding my username and password to the keyring but it always produced an error “NameError: global name ‘keyring’ is not defined”. Tried some fixes here and there but nothing had worked. So I bailed.
I tried to install the SMS Notifier (Twilio) instead, and that seems to have broken my plugin installation manager. Great. Now whenever I try to install a plugin after I tried to install the SMS Notifier I get the error message about pip not understanding the output or some shit. Great. I have flashed an SD card 2x and tried this twice, it always causes this issue. Damn you SMS Notifier. I have not looked at their Github for a fix yet, so… (Update: it did not break my plugin manager, that was another issue.)
I went back to the Email Notifier, and this time I got it working. I spent some more time digging on the net and found the solution to the issue I had of the keyring not defined. Then… I ran into a different error of yagmail not wanting to send mail via Google because of some reason (it didn’t say exactly) just gave me the generic error code of “send-mail: Authorization failed 534 5.7.14”. Looking that up had no help. But… I did find the answers to my problems and now my Email Notifier is up and running!
I get the error message of there being a new pip version but I have ignored this so far. These are the steps I took to get it working, YMMV.
First make sure that your Google account is setup to allow less secure sign-ins.
Then SSH into your OctoPrint and update yagmail then install keyring.
Install yagmail (its probably already installed but hey)
/home/pi/oprint/bin/pip install yagmail[all] --upgrade /home/pi/oprint/bin/pip install keyring --no-deps
Start OctoPrint Python
(control+z to exit)
Reboot the Raspberry Pi for all the changes to take effect. I tried just restarting OctoPrint but that didn’t work. After the reboot I ran into another issue (of course).
“sending failed. Reason :: send() got an unexpected keyword argument “validate_email”
Modify the file init.py (__init.py__ is how it showed on my system with
ls ) found in
/home/pi/oprint/lib/python2.7/site-packages/octoprint_emailnotifier and change the line:
mailer.send(to=emails, subject=subject, contents=body, validate_email=False)
mailer.send(to=emails, subject=subject, contents=body)
(here is the fix https://github.com/anoved/OctoPrint-EmailNotifier/issues/41#issuecomment-315799836)
Places I found my answers: