When I expose this function in controller locatormail:
def send_mail():
m_list=db(...) .select(...)
for item in m_list:
context=dict(item=item)
message=response.render('locatormail/send_mail.html',context)
recipient=item.contactpersoon.email
boolean=mail.send(to=[recipient],subject='...
',message=[None,message])
if boolean:
db.mailingstats.insert(...)
else:
db.adminstats.insert(...)
return True
Mails are sent without problems both locally and remotely. When I
expose this function in controller adminmail:
def send_mail():
item=db(...).select(...)
context=dict(item=item[0])
message=response.render('adminmail/send_mail.html',context)
recipient=item[0].email
boolean=mail.send(to=[recipient],subject='...',message=[None,message])
if boolean:
db.mailingstats.insert(...)
else:
db.adminstats.insert(...)
return True
I locally get the following error:
Error traceback
Traceback (most recent call last):
File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
rocket.py", line 876, in run
self.run_app(conn)
File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
rocket.py", line 1286, in run_app
self.environ = environ = self.build_environ(sock_file, conn)
File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
rocket.py", line 1119, in build_environ
request = self.read_request_line(sock_file)
File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
rocket.py", line 947, in read_request_line
raise SocketClosed('Client closed socket.')
SocketClosed: Client closed socket.
Error snapshot
Detailed traceback description
Exception: <class 'gluon.rocket.SocketClosed'>(Client closed socket.)
Python 2.5.1: /System/Library/Frameworks/Python.framework/Versions/2.5/
Resources/Python.app/Contents/MacOS/Python
File /Library/Python/2.5/site-packages/web2py_1.87.3/gluon/rocket.py
in run at line 876
[ code | arguments | variables ]
File /Library/Python/2.5/site-packages/web2py_1.87.3/gluon/rocket.py
in run_app at line 1286
[ code | arguments | variables ]
File /Library/Python/2.5/site-packages/web2py_1.87.3/gluon/rocket.py
in build_environ at line 1119
[ code | arguments | variables ]
File /Library/Python/2.5/site-packages/web2py_1.87.3/gluon/rocket.py
in read_request_line at line 947
[ code | arguments | variables ]
Function argument list: (self=<WSGIWorker(Thread-13, started daemon)>,
sock_file=<socket._fileobject object at 0x5d12170>)
except socket.timeout:
raise SocketTimeout("Socket timed out before request.")
if d.strip() == '':
self.err_log.debug('Client did not send a recognizable
request.')
raise SocketClosed('Client closed socket.')
try:
self.request_line = d.strip()
method, uri, proto = self.request_line.split(' ')
global SocketClosed: <class 'gluon.rocket.SocketClosed'>
Whereas, remotely (Apache with mod_wsgi) the function sends mails
without problems. To me the functions are almost the same, so I don't
understand why they behave differently. I hope one of you does.
Regards,
Annet.