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

Reply via email to