Grails - Render a template by email

730 views Asked by At

I have a controller's method which renders a template. This works fine to render the template within my .gsp view.

I am also using the mail-plugin, and I would like to used the same controller's function to render the template by email, hence populating some email with it.

I know how to do that from a .gsp view via Ajax request but do not know any way to do that from within a controller or a service. The idea would be to use my controller's action more like a function, take the rendered teplate and populate my email with it. Also, my controller's action needs to have some 'params' properties to work properly.

Any suggestion most welcome.

Regards,

1

There are 1 answers

1
Tomas Lin On BEST ANSWER

You can use the render tag( http://grails.org/doc/latest/ref/Tags/render.html ) can be used to return a string.

I would move whatever logic you have in your controller that is reusable into a service, and then use this to return a model, then you can simply call this via:

def model = myService.method( ... )
def emailContent = g.render( template: 'mytemplate', model: model)