Can't send email
hamanjam opened this issue · 5 comments
First off, thanks for maybe the simplest setup I've seen for this. I'm getting an error when trying to send email notifications. Whn I start up, I can connect and everything looks great. When I disconnect the sensor to simulate an open door, I get a message on the command line after several minutes:
root@ol7:/home/pi/garage-door-controller# /etc/rc.local
My IP address is X.X.X.X
root@ol7:/home/pi/garage-door-controller#
root@ol7:/home/pi/garage-door-controller# Unhandled error in Deferred:
Here is my config.json with the email settings:
{
"config":{
"use_https":true,
"use_auth":true,
"use_alerts":true,
"use_openhab":false
},
"alerts":{
"time_to_wait":10,
"alert_type":"smtp",
"smtp":{
"smtphost":"smtp.gmail.com",
"smtpport":587,
"smtp_tls":"True",
"username":"fromuser@gmail.com",
"password":"mypass",
"to_email":"touser@hotmail.com",
"subject":"Garage door test"
},
Have you tried smtpport 465?
Just tried it and same thing.
I installed exim on the Pi and tried it as well sending mail locally also. I can manually send mail from command line through exim. I can telnet to both ports at gmail
Started completely over and got the same error. Searching turns out that's a problem with a version of "twisted" I was able to run "pip install Twisted" and cleanup with more info. Now, the app hangs and stops responding to door events but at least I get more in /var/log/messages:
Unhandled error in Deferred:
Traceback (most recent call last):
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/base.py", line 1267, in run
self.mainLoop()
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/base.py", line 1276, in mainLoop
self.runUntilCurrent()
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/base.py", line 902, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/task.py", line 239, in call
d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- ---
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 151, in maybeDeferred
result = f(*args, **kw)
File "controller.py", line 136, in status_check
self.send_email(title, message)
File "controller.py", line 178, in send_email
sys.syslog("Error sending email: " + str(inst))
exceptions.NameError: global name 'sys' is not defined
Found the first issue I'm having:
Line 178 in controller.py:
sys.syslog("Error sending email: " + str(inst))
Change to:
syslog.syslog("Error sending email: " + str(inst))
Now, in var/log/messages I see the following but no crash (no email but making progress)
Nov 21 17:43:00 garagedoor garage_controller: LEFT: closed => open
Nov 21 17:43:10 garagedoor garage_controller: Sending email message
Nov 21 17:43:10 garagedoor garage_controller: Error sending email: getaddrinfo() argument 2 must be integer or string
Fixed. My problem in config.json was the port number was in quotes from testing previously. Once I set up the app password in gmail, I was able to send email.