the problem with mail.send is it creates a brand new connection to the SMTP server *every* single time you call it.
If you are sending more than 10 emails at a time this will not be efficient and will take an unnecessary amount of time to complete. I would suggest dropping down to using base smtplib so you can send everything through a single connection. Keep in mind when doing this certain SMTP servers have limits on how many emails can be sent (500 by default) so you would need to re-establish your connection after this cutoff point. -- Thadeus On Wed, Nov 24, 2010 at 1:09 AM, annet <annet.verm...@gmail.com> wrote: > Hi David, > > I have a crm app from which I send html mails using the following > function: > > def mail(): > m_list=db(...).select(...) > for item in m_list: > context=dict(item=item) > message=response.render('mail/mail.html',context) > recipient=item.email > > boolean=mail.send(to=[recipient],subject='...',message=[None,message]) > if boolean: > db.mailingstats.insert(...) > else: > db.adminstats.insert(...) > return True > > The boolean stuff isn't a necessity but it gives me feedback on the > process, and I use the mailingstats table for statistical purposes. > > If you're sending html mails make sure the layout is all tables, and > put the css in the body not in the head. If you need an example I'll > post a view. > > > Kind regards, > > Annet. >