[Product-Developers] Sending mails in different languages at once.

Taito Horiuchi dev at abita.fi
Sun Feb 8 14:22:56 UTC 2009


My use case is here:

I have Folder type ATContentType which has two fields "language" and
"e-mail".

It has it's own view and when some member click button "send" of that view,
same e-mail but in different languages need to be sent to the mail address
of the Folder in Folder's language and also to member in current site
language.

Sending to member in currently selected language is default in plone, so
this is not problem, although I don't know the detailed mechanism, but
sending to Folder e-mail address in folder's language, I could not make it
work.

Sending e-mail is executed by secureSend().

Here is some part of the BrowserView class:

class FolderView(BrowserView):

    template = ViewPageTemplateFile('folder_view.pt')
    mail_template = ViewPageTemplateFile('mail_template.pt')

    def __call__(self):

        form = self.request.form
        context= aq_inner(self.context)
        language_tool = getToolByName(context, "portal_languages")

        send_button = form.get('form.button.Send', None) is not None

        ## Check currently selected language.
        languages = language_tool.getLanguageBindings()
        lang = languages[0] or languages[1]

        if send_button:
            ## Set language with folder language.
            request['set_language'] = folder.language
            language_tool.setLanguageBindings()
            send_to_address = folder.email #folder's e-mail address
            envelope_from = portal.getProperty('email_from_address')
            subject = "E-mail to Folder"
            sender_from_address = "Portal <info at portal.com>"
            message = self.mail_template()
            result = context.MailHost.secureSend(
                        message,
                        send_to_address,
                        envelope_from,
                        subject=subject,
                        subtype='html',
                        charset=encoding,
                        debug=False,
                        From=sender_from_address,)

           ## Return to the site language.
            request['set_language'] = lang
            language_tool.setLanguageBindings()
            return self.template()
        else:
            return self.template()

This is not working to send e-mail in language I expect.

I use zpt as "message" like:
mail_template = ViewPageTemplateFile('mail_template.pt')

I appreciate any help.

Thanks,

Taito
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.plone.org/pipermail/plone-product-developers/attachments/20090208/c5c0a54d/attachment.html>


More information about the Product-Developers mailing list