Ok, I solved it. The trick is that message is first text, then html. So the 
signature should read like this:

context = dict(x=y)
message = response.render("message.html", context)
***Please note that the message.html file should be in the top level of 
your views folder or should be a absolute path to it.

mail.send(to=[recipient],subject='subject',message=message) 

will result in a text message. 

to render as html, is :

mail.send(to=[recipient],subject='subject',message=[None,message]) 

On Sunday, September 23, 2012 8:05:24 PM UTC+1, Pystar wrote:
>
> Using this method, the mail is sent successfully,but shows raw html code 
> in the email client, i.e. its not rendering
>
>
> On Friday, September 7, 2012 4:19:45 PM UTC+1, Niphlod wrote:
>>
>> it's a path relative to the app's *views *folder. With this code your *
>> message.html* should be next to layout.html, just in the 
>> *yourapp/views/*folder.
>>
>> Il giorno venerdì 7 settembre 2012 17:04:27 UTC+2, Daniel Gonzalez ha 
>> scritto:
>>>
>>> As explained here:
>>>
>>>
>>> http://web2py.com/books/default/chapter/29/8#Using-the-template-system-to-generate-messages
>>>
>>> The following code can be used to render a view file to send via email:
>>>
>>> for person in db(db.person).select():
>>>     context = dict(person=person)
>>>     message = response.render('message.html', context)
>>>     mail.send(to=['w...@example.com'],
>>>               subject='None',
>>>               message=message)
>>>
>>> I have tried this, but I am not able to place the "message.html" 
>>> correctly in the directory hierarchy.
>>> How does reponse.render find the view files, or, even better, how can I 
>>> tell response.render where to find my template file?
>>>
>>> Thanks,
>>> Daniel
>>>
>>

-- 



Reply via email to