Solved, or at least hacked well enough for the time being :-) --enable_sendmail did the trick. It needs to be entered in the app settings in the GAE Launcher: * stop the app * double-click app in listing * enter --enable_sendmail in listing
Here's the blog post that put me on the right track: http://blog.docuverse.com/2009/01/30/google-app-engine-launcher-options/ Cheers, Mike On Jul 11, 12:20 pm, MikeEllis <michael.f.el...@gmail.com> wrote: > I just modified my tools.py as follows: > > elif self.settings.server == 'gae': > logging.warn("using gae mail server") > from google.appengine.api import mail > attachments = attachments and > [(a.my_filename,a.my_payload) for a in attachments] > > ## gae mailer chokes on empty attachments or html > extra = dict(html=html, attachments=attachments) > for k in extra.keys(): > if not extra[k]: extra.pop(k) > > result = mail.send_mail(sender=self.settings.sender, > to=to, > subject=subject, body=text, > **extra) > logging.warn("result of mail.send_mail() is > %s"%repr(result)) > > This fixed the exceptions associated with empty attachments and html, > but no mail is being sent when testing under GAE Launcher, apparently > because something else needs to be done to enable it. Here's what's > showing up in the console log: > > WARNING 2010-07-11 15:57:04,413 tools.py:535] using gae mail server > INFO 2010-07-11 15:57:04,416 mail_stub.py:84] MailService.Send > INFO 2010-07-11 15:57:04,416 mail_stub.py:85] From: > myaddr...@gmail.com > INFO 2010-07-11 15:57:04,416 mail_stub.py:88] To: > myaddr...@gmail.com > INFO 2010-07-11 15:57:04,416 mail_stub.py:97] Subject: Email > verification > INFO 2010-07-11 15:57:04,416 mail_stub.py:100] Body: > INFO 2010-07-11 15:57:04,416 mail_stub.py:101] Content-type: > text/plain > INFO 2010-07-11 15:57:04,416 mail_stub.py:102] Data length: > 132 > INFO 2010-07-11 15:57:04,417 mail_stub.py:207] You are not > currently sending out real email. If you have sendmail installed you > can use it by using the server with --enable_sendmail > WARNING 2010-07-11 15:57:04,417 tools.py:545] result of > mail.send_mail() is None > > Since it's the gae server, I'm not sure if the bit about -- > enable_sendmail is relevant, but clearly something is not set up > correctly. Any ideas? > > I'm running GAE SDK 1.3.5 and web2py 1.92 on OS X 10.6.4 > > BTW, I'm wondering if the default registration page should be amended > to allow retrying the email notification when attempting to register > an unverified address that's already in the db. Having to use the > admin interface to delete the address each time while debugging mail > settings is time-consuming. > > Thanks, > Mike > > On Jun 19, 11:12 am, Larry <ziz...@gmail.com> wrote: > > > > > Peter, > > > This code looks good to me. I will adopt the same for now. > > > Larry > > > On Jun 19, 12:37 am, pecos1046 <pecos1...@gmail.com> wrote: > > > > Hi Larry: > > > > Looking at your suggestion, I made a code change in tools.py and mail > > > with gae works well. Here my patch - so far so good, I wonder when it > > > will backfire. > > > > elif self.settings.server == 'gae': > > > from google.appengine.api import mail > > > attachments = attachments and > > > [(a.my_filename,a.my_payload) for a in attachments] > > > > if attachments and html: > > > result = > > > mail.send_mail(sender=self.settings.sender, to=to, > > > subject=subject, body=text, > > > html=html, > > > attachments=attachments) > > > > elif html: > > > result = > > > mail.send_mail(sender=self.settings.sender, to=to, > > > subject=subject, body=text, > > > html=html) > > > > elif attachments: > > > result = > > > mail.send_mail(sender=self.settings.sender, to=to, > > > subject=subject, body=text, > > > attachments=attachments) > > > > else: > > > result = > > > mail.send_mail(sender=self.settings.sender, to=to, > > > subject=subject, body=text) > > > > Thanks again > > > > Peter > > > > On Jun 17, 5:16 am, Larry <ziz...@gmail.com> wrote: > > > > > I was also getting thiserroron my first go at sending mail using > > > > gae. > > > > > I looked at the code in gluon/tools.py for sending gae mail : > > > > > elif self.settings.server == 'gae': > > > > from google.appengine.api import mail > > > > attachments = attachments and [(a.my_filename,a.my_payload) for a > > > > in attachments] > > > > result = mail.send_mail(sender=self.settings.sender, to=to, > > > > subject=subject, body=text, html=html, > > > > attachments=attachments) > > > > > and retried after removing the attachments=attachments from the > > > > send_mail and it worked if I send both text and html versions of the > > > > message. > > > > > I assume gae does not like the attachments value being None. > > > > > Larry > > > > > On Jun 11, 9:25 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > if you use server='gae' you should use login=None > > > > > Not sure if this is the problem anyway. Do you get anyerror? > > > > > > On 11 Giu, 10:12, pecos1046 <pecos1...@gmail.com> wrote: > > > > > > > I use theemailverification option for new user registration. It > > > > > > works fine in test mode on the google-appengine sdk. However when I > > > > > > upload the application to Google and change the smtp server to "gae" > > > > > > it is unable to send the verificationemail. The GoogleGAElog show > > > > > > the following warning message: > > > > > > >Mail.send failure:May not set empty value for 'attachments' > > > > > > > Here are my settings: > > > > > > >mail=Mail( ) > > > > > >mail.settings.server='gae' # your SMTP server > > > > > >mail.settings.sender='....@gmail.com' > > > > > >mail.settings.tls = True > > > > > >mail.settings.login='....@gmail.com:password' > > > > > > auth.settings.mailer=mail > > > > > > > I appreciate any help and suggestions. > > > > > > > Peter