summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/data
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/mass_mailing/data
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/mass_mailing/data')
-rw-r--r--addons/mass_mailing/data/mail_data.xml20
-rw-r--r--addons/mass_mailing/data/mailing_data_templates.xml46
-rw-r--r--addons/mass_mailing/data/mass_mailing_data.xml25
-rw-r--r--addons/mass_mailing/data/mass_mailing_demo.xml282
4 files changed, 373 insertions, 0 deletions
diff --git a/addons/mass_mailing/data/mail_data.xml b/addons/mass_mailing/data/mail_data.xml
new file mode 100644
index 00000000..6c9bd7b5
--- /dev/null
+++ b/addons/mass_mailing/data/mail_data.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo><data noupdate="1">
+ <!-- Reference: https://litmus.com/community/learning/24-how-to-code-a-responsive-email-from-scratch -->
+ <template id="mass_mailing_mail_layout">
+ &lt;!DOCTYPE html&gt;
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta name="format-detection" content="telephone=no"/>
+ <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
+
+ <t t-call="mass_mailing.mass_mailing_mail_style"/>
+ </head>
+ <body>
+ <t t-raw="body"/>
+ </body>
+ </html>
+ </template>
+</data></odoo>
diff --git a/addons/mass_mailing/data/mailing_data_templates.xml b/addons/mass_mailing/data/mailing_data_templates.xml
new file mode 100644
index 00000000..5f161205
--- /dev/null
+++ b/addons/mass_mailing/data/mailing_data_templates.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+<data noupdate="1">
+ <template id="mass_mailing.mass_mailing_kpi_link_trackers" name="Email Marketing: mailing link trackers statistic">
+ <table t-if="link_trackers" cellspacing="0" cellpadding="0" align="center" border="0" bgcolor="#eeeeee" style="width:100%; font-family: Arial,Helvetica,Verdana,sans-serif;">
+ <tr>
+ <td align="center" valign="top">
+ <table bgcolor="#ffffff" cellspacing="0" cellpadding="0" width="650" align="center" border="0" style="border: 1px solid #eeeeee; border-bottom: none;border-top: none; width: 100%; max-width: 650px; padding:0 30px 30px 30px">
+ <tr>
+ <td style="width: 100%;">
+ <table cellspacing="0" cellpadding="0" border="0" width="580" align="center" style="width:100%; max-width:580px;">
+ <tr>
+ <td align="left" style="border-bottom: 1px solid #eeeeee;">
+ <span style="color:#282f33; font-size: 15px; font-weight: bold; line-height: 30px">
+ <t t-esc="'Click Rate Report on %i Emails Sent' % object.sent"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td style="margin: 0; padding:0;">
+ <table cellspacing="0" cellpadding="0" border="0" width="580" align="center" style="width:100%; max-width:580px;">
+ <tr style="color: #875a7b; font-size: 16px; font-weight: 500; border-bottom: 1px solid #e7e7e7;">
+ <td style="width: 70%;padding: 10px 0; text-align: left;">Label</td>
+ <td style="width: 30%;padding: 10px 0; text-align: right;">%Click (Total)</td>
+ </tr>
+ <tr t-foreach="link_trackers" t-as="link_tracker" style="color: #888888; font-size: 15px; font-weight: 300;">
+ <td style="width: 70%;padding: 10px 0; text-align: left;">
+ <a t-att-href="link_tracker.absolute_url" target="_blank" style="color: #56b3b5; text-decoration: none;" t-esc="link_tracker.label or link_tracker.url"/>
+ </td>
+ <td style="width: 30%;padding: 10px 0; text-align: right;">
+ <t t-esc="int(link_tracker.count * 100 / object.sent) if object.sent else 0"/>% (<t t-esc="link_tracker.count"/>)
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </template>
+</data>
+</odoo>
diff --git a/addons/mass_mailing/data/mass_mailing_data.xml b/addons/mass_mailing/data/mass_mailing_data.xml
new file mode 100644
index 00000000..95d6efc0
--- /dev/null
+++ b/addons/mass_mailing/data/mass_mailing_data.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+ <!-- Cron that process the mass mailing queue -->
+ <record id="ir_cron_mass_mailing_queue" model="ir.cron">
+ <field name="name">Email Marketing: Process queue</field>
+ <field name="model_id" ref="model_mailing_mailing"/>
+ <field name="state">code</field>
+ <field name="code">model._process_mass_mailing_queue()</field>
+ <field name="user_id" ref="base.user_root" />
+ <field name="interval_number">60</field>
+ <field name="interval_type">minutes</field>
+ <field name="numbercall">-1</field>
+ <field eval="False" name="doall" />
+ </record>
+ <record id="mailing_list_data" model="mailing.list">
+ <field name="name">Newsletter</field>
+ </record>
+ <record id="mass_mailing_contact_0" model="mailing.contact">
+ <field name="name" model="res.users" eval="obj().env.ref('base.user_admin').name"/>
+ <field name="email" model="res.users" eval="obj().env.ref('base.user_admin').email"/>
+ <field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/mass_mailing/data/mass_mailing_demo.xml b/addons/mass_mailing/data/mass_mailing_demo.xml
new file mode 100644
index 00000000..e894fce6
--- /dev/null
+++ b/addons/mass_mailing/data/mass_mailing_demo.xml
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data noupdate="1">
+
+ <record id="mass_mail_attach_1" model="ir.attachment">
+ <field name="datas">bWlncmF0aW9uIHRlc3Q=</field>
+ <field name="name">SampleDoc.doc</field>
+ </record>
+
+ <!-- Create Contacts -->
+ <record id="mass_mail_contact_1" model="mailing.contact">
+ <field name="name">Aristide Antario</field>
+ <field name="email">aa@example.com</field>
+ <field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
+ </record>
+ <record id="mass_mail_contact_2" model="mailing.contact">
+ <field name="name">Beverly Bridge</field>
+ <field name="email">bb@example.com</field>
+ <field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
+ </record>
+ <record id="mass_mail_contact_3" model="mailing.contact">
+ <field name="name">Carol Cartridge</field>
+ <field name="email">cc@example.com</field>
+ <field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
+ </record>
+ <record id="mass_mail_contact_4" model="mailing.contact">
+ <field name="name">David Dawson</field>
+ <field name="email">dd@example.com</field>
+ </record>
+ <record id="mass_mail_contact_5" model="mailing.contact">
+ <field name="name">Elsa Ericson</field>
+ <field name="email">ee@example.com</field>
+ <field name="list_ids" eval="[(6,0,[ref('mass_mailing.mailing_list_data')])]"/>
+ </record>
+
+ <!-- Create Opt-out Records -->
+ <record id="mass_mail_contact_list_rel_1" model="mailing.contact.subscription">
+ <field name="list_id" ref="mass_mailing.mailing_list_data"/>
+ <field name="contact_id" ref="mass_mailing.mass_mail_contact_4"/>
+ <field name="opt_out">True</field>
+ </record>
+
+ <!-- Create Blacklist Records -->
+ <record id="blacklist_1" model="mail.blacklist">
+ <field name="email">ee@example.com</field>
+ </record>
+
+ <!-- Create campaign and mailings -->
+ <record id="utm_source_0" model="utm.source">
+ <field name="name">Newsletter 1</field>
+ </record>
+ <record id="mass_mail_campaign_1" model="utm.campaign">
+ <field name="name">Newsletter</field>
+ <field name="stage_id" ref="utm.campaign_stage_1"/>
+ <field name="user_id" ref="base.user_admin"/>
+ <field name="tag_ids" eval="[(6,0,[ref('utm.utm_tag_1')])]"/>
+ </record>
+
+ <record id="mass_mail_1" model="mailing.mailing">
+ <field name="name">Newsletter 1</field>
+ <field name="subject">Monthly Newsletter</field>
+ <field name="state">done</field>
+ <field name="user_id" ref="base.user_admin"/>
+ <field name="email_from">info@yourcompany.example.com</field>
+ <field name="sent_date" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="campaign_id" ref="mass_mail_campaign_1"/>
+ <field name="source_id" ref="mass_mailing.utm_source_0"/>
+ <field name="mailing_model_id" ref="base.model_res_partner"/>
+ <field name="mailing_domain" eval="[('parent_id', '=', ref('base.res_partner_4'))]"/>
+ <field name="reply_to_mode">email</field>
+ <field name="reply_to">Info &lt;info@yourcompany.example.com&gt;</field>
+ <field name="body_html" type="html">
+<div class="o_layout o_default_theme">
+ <table class="o_mail_wrapper" style="border-collapse:collapse;">
+ <tbody>
+ <tr>
+ <td class="o_mail_no_resize o_not_editable" style="text-align:left;"> </td>
+ <td class="o_mail_no_options o_mail_wrapper_td oe_structure" style="text-align:left;width:100%;">
+ <div class="o_mail_block_header_logo" data-snippet="s_mail_block_header_logo">
+ <div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
+ <table align="center" cellspacing="0" cellpadding="0" border="0" class="o_mail_table_styles o_mail_h_padding" style="padding:0 20px 0 20px;width:100%;border-collapse:separate;">
+ <tbody>
+ <tr>
+ <td valign="center" width="30%" class="text-center o_mail_v_padding pb0" style="padding:20px 0 0px 0;vertical-align:middle;text-align:center;">
+ <a href="http://www.example.com" style="text-decoration:none;font-weight:bold;background-color:transparent;color:rgb(100, 89, 116);">
+ <img border="0" src="/mass_mailing/static/src/img/theme_default/s_default_image_logo.png" style="border-style:none;height:auto;vertical-align:middle;max-width:400px;width:auto"/> ​
+ </a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="o_mail_block_footer_separator" data-snippet="s_mail_block_footer_separator" style="margin:0 20px 0 20px;">
+ <div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
+ <table align="center" cellspacing="0" cellpadding="0" class="o_mail_table_styles o_mail_full_width_padding" style="width:100%;border-collapse:separate;">
+ <tbody>
+ <tr>
+ <td valign="top" style="padding:20px 0 20px 0;text-align:left;vertical-align:top;width:100%;" class="o_mail_v_padding o_mail_no_colorpicker">
+ <div style="background-color:rgb(245, 245, 245);height:2px;width:100%;" class="separator"></div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="o_mail_block_paragraph" data-snippet="s_mail_block_paragraph">
+ <div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
+ <table align="center" cellspacing="0" cellpadding="0" border="0" class="o_mail_table_styles" style="width:100%;border-collapse:separate;">
+ <tbody>
+ <tr>
+ <td width="100%" class="o_mail_h_padding o_mail_v_padding o_mail_no_colorpicker" style="padding:20px;text-align:left;vertical-align:top;">
+ <p style="margin:0px 0 1rem 0;font-size:14px;">
+ Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.
+ <br/>Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="o_mail_block_footer_social o_mail_footer_social_center" data-snippet="s_mail_block_footer_social">
+ <div class="o_mail_snippet_general" style="margin:0px auto 0px auto;background-color:rgb(255, 255, 255);max-width:600px;width:100%;">
+ <table align="center" cellspacing="0" cellpadding="0" class="o_mail_table_styles o_mail_full_width_padding" style="border-style:solid none none none;padding:20px 0 20px 0;border-top-color:rgb(245, 245, 245);border-top-width:2px;width:100%;border-collapse:separate;">
+ <tbody>
+ <tr>
+ <td class="o_mail_footer_links o_default_snippet_text" style="padding:10px 0 10px 0;text-align:center;vertical-align:middle;">
+ <a href="/unsubscribe_from_list" class="btn btn-link o_default_snippet_text" style="text-decoration:none;border-radius:0.25rem;border-style:solid;padding:0px;cursor:pointer;line-height:1.5;font-size:12px;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;border-top-color:transparent;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-width:1px;user-select:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:bold;display:inline-block;background-color:transparent;color:rgb(100, 89, 116);">Unsubscribe</a> |
+
+ <a href="/contactus" class="btn btn-link o_default_snippet_text" style="text-decoration:none;border-radius:0.25rem;border-style:solid;padding:0px;cursor:pointer;line-height:1.5;font-size:12px;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;border-top-color:transparent;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-width:1px;user-select:none;vertical-align:middle;white-space:nowrap;text-align:center;font-weight:bold;display:inline-block;background-color:transparent;color:rgb(100, 89, 116);">Contact</a>
+ </td>
+ </tr>
+ <tr>
+ <td style="text-align:left;vertical-align:middle;">
+ <p class="o_mail_footer_copy" style="margin:0px 0 1rem 0;text-align:center;font-weight:bold;color:rgb(147, 146, 146);font-size:9px;">
+ <img src="/web_editor/font_to_img/61945/rgb(147,146,146)/9" data-class="fa fa-copyright" style="border-style:none;max-width:100%;width:100%;vertical-align:middle;height: auto; width: auto;"/>2018 All Rights Reserved
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table align="center" cellspacing="0" cellpadding="0" class="o_mail_table_styles o_mail_full_width_padding" style="width:100%;border-collapse:separate;">
+ <tbody>
+ <tr>
+ <td align="center" style="padding:16px 0 16px 0;" class="pt16 pb16">
+ Powered by <a target="_blank" href="https://www.odoo.com" style="text-decoration:none;background-color:transparent;color:#875A7B;">Odoo</a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+</field>
+ <field name="attachment_ids" eval="[(4, ref('mass_mail_attach_1'))]"/>
+ </record>
+ <!-- Generate link tracker information from it -->
+ <function model="mailing.mailing" name="convert_links" eval="[ref('mass_mailing.mass_mail_1')]"/>
+
+ <record id="mass_mail_1_stat_0" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111000@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_7"/>
+ <field name="email">billy.fox45@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="opened" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="replied" eval="(DateTime.today() - relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_1" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111001@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_13"/>
+ <field name="email">kim.snyder96@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="opened" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="replied" eval="(DateTime.today() - relativedelta(days=0)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_2" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111002@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_14"/>
+ <field name="email">edith.sanchez68@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="opened" eval="(DateTime.today() - relativedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_3" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111003@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_24"/>
+ <field name="email">theodore.gardner36@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="opened" eval="(DateTime.today() - relativedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_4" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111004@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_32"/>
+ <field name="email">sandra.neal80@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_5" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111005@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_33"/>
+ <field name="email">julie.richards84@example.com</field>
+ <field name="sent" eval="False"/>
+ <field name="exception" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_6" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111006@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_34"/>
+ <field name="email">travis.mendoza24@example.com</field>
+ <field name="sent" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ <field name="bounced" eval="(DateTime.today() - relativedelta(days=3)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+ <record id="mass_mail_1_stat_7" model="mailing.trace">
+ <field name="mass_mailing_id" ref="mass_mail_1"/>
+ <field name="message_id">1111007@odoo.com</field>
+ <field name="model">res.partner</field>
+ <field name="res_id" ref="base.res_partner_address_34"/>
+ <field name="email">travis.mendoza24@example.com</field>
+ <field name="sent" eval="False"/>
+ <field name="ignored" eval="(DateTime.today() - relativedelta(days=5)).strftime('%Y-%m-%d %H:%M:%S')"/>
+ </record>
+
+ <!-- Generate some clicks -->
+ <function model="link.tracker.click" name="add_click">
+ <value model="link.tracker.code"
+ search="[('link_id.url', '=', 'http://www.example.com')]"
+ use="code"/>
+ <value name="ip">100.01.02.03</value>
+ <value name="country_code">BE</value>
+ <value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
+ </function>
+ <function model="link.tracker.click" name="add_click">
+ <value model="link.tracker.code"
+ search="[('link_id.url', '=', 'http://www.example.net/page/contactus')]"
+ use="code"/>
+ <value name="ip">100.01.02.03</value>
+ <value name="country_code">BE</value>
+ <value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
+ </function>
+ <function model="link.tracker.click" name="add_click">
+ <value model="link.tracker.code"
+ search="[('link_id.url', '=', 'http://www.example.com')]"
+ use="code"/>
+ <value name="ip">100.01.02.04</value>
+ <value name="country_code">BE</value>
+ <value name="mailing_trace_id" eval="ref('mass_mail_1_stat_1')"/>
+ </function>
+ <function model="link.tracker.click" name="add_click">
+ <value model="link.tracker.code"
+ search="[('link_id.url', '=', 'http://www.example.net/page/contactus')]"
+ use="code"/>
+ <value name="ip">100.01.02.04</value>
+ <value name="country_code">BE</value>
+ <value name="mailing_trace_id" eval="ref('mass_mail_1_stat_0')"/>
+ </function>
+ <function model="link.tracker.click" name="add_click">
+ <value model="link.tracker.code"
+ search="[('link_id.url', '=', 'http://www.example.com')]"
+ use="code"/>
+ <value name="ip">100.01.02.05</value>
+ <value name="country_code">BE</value>
+ <value name="mailing_trace_id" eval="ref('mass_mail_1_stat_2')"/>
+ </function>
+
+ </data>
+</odoo>