Bem vindo!
This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.
enviar email com template pelo Odoo com e sem anexo
Primeiramente você pode enviar um email sem template, o que é bem mais fácil, exemplo:
mailing = self.env['mail.mass_mailing'].create({'name': 'TestMailing',
'medium_id': self.test_medium.id,
'body_html': '<p>Hello <a role="button" href="www.algumacoisa">${object.name}</a><a role="button" href="/unsubscribe_from_list">Unsubscribe</a></p>',
'reply_to_mode': 'email',
'mailing_model_id': self.ref('test_mass_mailing.model_mass_mail_test_bl'),
'mailing_domain': [('id', 'in', self.mm_recs.ids)],
})
mailing.send_mail()
,mas se quiser enviar um template personalizado, primeiro defina o template, exemplo:
<record id="email_template_help" model="mail.template">
<field name="name">Email template website</field>
<field name="model_id" ref="model_email_website"/>
<field name="auto_delete" eval="True"/>
<field name="subject"/>
<field name="email_from"/>
<field name="email_to"/>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<tr>
<td style="font-size: 13px;" valign="top">
<h2 style="text-align: left; padding-left: 40px;">Você acaba de receber um email do Website</h2>
<h4 style="padding-left: 40px;">Atendimento ou Visita Técnica.</h4>
Nome: ${(object.name)}<br/>
E-mail: ${(object.email)}<br/>
Telefone: ${(object.tel)}<br/>
Estado/Cidade: ${(object.state)}<br/>
Dúvida: ${(object.ask)}
</td>
</tr>
<tr>
<br/>Você está recebendo este email porque faz parte da lista de contatos para pergunta ou visita técnica, se acha que isto é um erro ou não deseja receber, entre em contato com um administrador.
</tr>
</tbody>
</table>
</td></tr>
<!-- POWERED BY -->
<tr><td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
<tr><td style="text-align: center; font-size: 13px;">
Criado por <a target="_blank" href="http://voraztecnologia.com/" style="color: green;">Voraz Tecnologia</a>
</td></tr>
</table>
</td></tr>
</table>
</field>
<field name="lang">${user.lang}</field>
</record>
A sintaxe ${(object.name)} acessa os campos desse modelo, ou seja, existirá um name = field.Char() no modelo mail.template. Os campos importantes são:
subject é o nome da mensagem
email_to é o destinatario
email_from é o remetente
body_html corpo da mensagem
Os anexos podem estão presentes no email, logo eles ficam na varial attachment_ids
você pode ter uma série de anexos [ (12), (543), (176) ], os IDS dos anexos carregados em banco, para isso, primeiro crie um anexo depois atribua a essa variavel.
Vamos carregar um anexo do tipo 'FileStorage' e convertê-lo para 'base64', perceba que nosso arquivo vem do argumento kwargs[].
template = request.env.ref('website_zooflora.email_template_job')
template.subject = 'Website Zooflora : Trabalhe Conosco'
template.email_to = email_list
data_record = base64.b64encode(kwargs['[0][0]'].read())
ir_values = {
'name': kwargs['[0][0]'].filename,
'type': 'binary',
'datas': data_record,
'datas_fname': kwargs['[0][0]'].filename,
'mimetype': kwargs['[0][0]'].mimetype,
}
data_id = request.env['ir.attachment'].create(ir_values)
template.attachment_ids = None
template.attachment_ids = [(4, data_id.id)]
template.send_mail(1, force_send=True)
Depois definimos o nome em ir_values.name
tipo em ir_values.type,
o arquivo entra como base64 em ir_values.datas,
o nome do arquivo que será renomeado ir_values.datas_fname
Depois criamos o anexo pelo modelo 'ir.attachment'
Limpamos os anexos existentes por template.attachment_ids = None
Anexamos o nosso anexo em template.attachment_ids = [(4, data_id.id)]
Enviamos o email em template.send_mail(1, force_send=True)
Your Answer
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
Fique Informado
Sobre esta Comunidade
Moderation Tools
Ferramentas de Pergunta
Estatísticas
Perguntada: 30/12/21 12:21 |
Visto: 502 vezes |
Última atualização: 30/12/21 12:24 |