Curso web2py

Enviando E-mails

E-mails podem ser facilmente enviados pelo método send() do seu mailer.

mail.send(to=['[email protected]'],
        subject='Seu assunto',
        reply_to='[email protected]', # pode ser omitido
        message='Mensagem do e-mail.'
        )

Essa função retornará True caso o envio tenha ocorrido sem problemas e False caso contrário.

E-mails HTML

As mensagens de e-mails podem conter HTML para sua formatação, indicado sempre pelas tags <html>e </html>.

mail.send(to=['[email protected]'],
        subject='E-mail HTML',
        message='<html> Mensagem <strong>teste</strong>.</html>'
        )

E-mails a partir de arquivos HTML

Seus arquivos HTML ficam na pasta views, portanto se você tem um arquivo HTML específico para um e-mail, pode enviá-lo da seguinte maneira:

context = dict(person='Fulano')
message = response.render('message.html', context)
mail.send(to=['[email protected]'],
        subject='Arquivo HTML de E-mail',
        message=message)

O response.render() vai renderizar o arquivo message.html que está dentro da pasta views como o seu novo e-mail. Todas as variáveis passadas no dicionário context serão substituídas em seus respectivos lugares, quando definidos, como veremos no capítulo de views.

Anexos

Arquivos podem ser anexados ao e-mail de maneira simples:

mail.send(to='[email protected]',
        subject='E-mail com anexo',
        message='<html><img src="cid:photo" /></html>',
        attachments = mail.Attachment('/path/to/photo.jpg', content_id='photo')
        )

Com múltiplos anexos:

mail.send(to='[email protected]',
        subject = 'Muitos Anexos!',
        message = 'Mensagem sobre muitos anexos.',
        attachments = [mail.Attachment('/path/to/fist.file'),
                        mail.Attachment('/path/to/second.file')]
        )