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.