Cara Setup Odoo 10 Outgoing Mail

Mengirim email (outgoing email) di Odoo sangatlah mudah, kita tinggal melakukan setting di aplikasi Odoo. Tetapi sebelumnya harus dipersiapkan mail server terlebih dahulu. Pada tutorial ini tidak membahas tentang konfigurasi mail server. Asumsinya, mail server sudah ada dan siap digunakan.

Persiapan modul “mail”.

Terlebih dahulu, kita akan melakukan persiapan awal pada aplikasi Odoo kita.

Install modul “mail” pada Odoo.

Langkah awal adalah menginstall modul “mail” pada Odoo. Modul “mail”, adalah modul untuk manajemen email dan chat. Nama tampilan modul mail adalah “Discuss”.

Odoo discuss
Odoo discuss

Buat record baru “Outgoing Mail Servers”.

Karena kita akan mengirim email, maka terlebih dahulu harus menambahkan data mail server di Odoo. Masuk ke menu “Settings” → “Technical” → “Email” → “Outgoing Mail Servers”, buat record baru seperti digambar bawah ini.

Atau kita juga bisa membuat record xml, seperti dibawah ini.

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
	<data noupdate="1">
		<record model="ir.mail_server" id="data_mail_server_1">
			<field name="name">Test Email Odoo</field>
			<field name="sequence">1</field>
			<!-- isi field dibawah ini dengan data dari mail server anda -->
			<field name="smtp_host">mail_server_anda</field>
			<field name="smtp_port">465/atau_sesuai_konfig_anda</field>
			<field name="smtp_encryption">ssl/atau_sesuai_konfig_anda</field>
			<field name="smtp_user">nama_user_mail_server</field>
			<field name="smtp_pass">password_user_mail_server</field>
		</record>
	</data>
</odoo>

Setelah membuat record “Outgoing Mail Servers”, tes koneksi terlebih dahulu. Klik tombol “Test Connection” yang ada di bawah. Pastikan tidak ada error terlebih dahulu.

Dari dua langkah diatas, sebenarnya kita sudah bisa mengirim email keluar melalui Odoo.

Percobaan mengirim email.

Untuk melakukan percobaan email keluar, kita bisa coba melakukan pengiriman email kepada karyawan.

Install modul “hr”.

Install modul “hr” untuk mengaktifkan model “hr.employee”.

Buat template email baru.

Buat template email baru untuk mengirim email keluar ke karyawan. Masuk ke menu “Settings” → “Technical” → “Email” → “Templates”.

Buat record baru seperti dibawah ini.

Atau bisa juga membuat record xml, seperti kode dibawah ini.

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
	<data noupdate="1">
		<record model="mail.template" id="template_mail_test_employee">
			<field name="name">Template Mail Test Employee</field>
			<field name="email_from">alamat_email_pengirim</field>
			<field name="subject">Pemberitahuan Program Odoo</field>
			<field name="email_to">${object.work_email}</field>
			<field name="email_cc"/>
			<field name="model_id" ref="hr.model_hr_employee"/>
			<field name="auto_delete" eval="False"/>
			<field name="lang"/>
			<field name="copyvalue"/>
			<field name="body_html">
<![CDATA[
<p>Yth. ${object.name},</p>

<p>
	Dengan ini kami memberitahukan bahwa anda sudah masuk program odoo
</p>

<p>Terima kasih.</p>
]]>
			</field>
		</record>
	</data>
</odoo>

Di kode atas, ataupun di gambar bisa dilihat bahwa ada kode “${object}”, kode “${object}” adalah object dari model_id yang kita definisikan. Jika kita mendefinisikan “hr.employee” pada model_id maka “${object}” adalah object dari “hr.employee” itu sendiri.

Sehingga bisa dilihat kita bisa menggunakan “${object.name}”, karena object ”hr.employee” mempunyai attribute “name”. Selain memanggil attribute, kita juga bisa memanggil method yang ada di “hr.employee” seperti “${object.call_some_method()}”.

Buat sebuah record pada “hr.employee”.

Sekarang kita buat sebuah record pada “hr.employee”, jangan lupa isikan suatu alamat email pada field work_email.

Buat sebuah tombol action “Send Email”.

Buat model baru yang meng-inherit model “hr.employee”, seperti kode dibawah ini.

from odoo import models, fields, api

class HrEmployeeEmail(models.Model):
	_inherit = 'hr.employee'

	@api.multi
	def action_send_mail(self):
		"""Dijalankan, jika user menekan tombol 'Send Email'"""
		template = self.env.ref('nama_modul.template_mail_test_employee')
		mail = self.env['mail.template'].browse(template.id)
		mail.send_mail(self.id)

Lalu buat sebuah view yang juga men-inherit view “hr.employee”, seperti kode dibawah ini.

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
	<data>
		<record model="ir.ui.view" id="view_employee_form_inherit">
			<field name="name">hr.employee.form.inherit</field>
			<field name="model">hr.employee</field>
			<field name="inherit_id" ref="hr.view_employee_form"/>
			<field name="arch" type="xml">
				<xpath expr="//sheet" position="before">
					<header>
						<button name="action_send_mail" type="object" class="oe_highlight" string="Send Email"/>
					</header>
				</xpath>
			</field>
		</record>
	</data>
</odoo>

Tampilan form “hr.employee” bisa dilihat seperti dibawah ini.

Sekarang coba tekan tombol “Send Mail”, jika tidak ada masalah maka sistem Odoo akan mendaftarkan pengiriman email pada antrian. Untuk mengecek antrian email keluar bisa dilihat pada menu “Settings” → “Technical” → “Email” → “Emails”.

Secara default, Odoo membuat sistem antrian untuk pengiriman email. Jika ingin langsung dikirim, kita bisa menekan tombol “Send Now”. Atau jika ingin langsung dikirim secara otomatis, kita bisa melakukan modifikasi kode seperti dibawah ini.

@api.multi
def action_send_mail(self):
	"""Dijalankan, jika user menekan tombol 'Send Email'"""
	template = self.env.ref('cj_tutor_email.template_mail_test_employee')
	mail = self.env['mail.template'].browse(template.id)
	mail.send_mail(self.id, force_send=True)

Setiap pengiriman email secara default dijadwalkan setiap 1 jam (cron job). Bisa dilihat di menu “Settings” → “Technical” → “Automation” → “Scheduled Actions” → “Email Queue Manager”.

Sekian tutorial kali ini.

Selamat mencoba. Semoga bermanfaat.

Baca juga: Menerima email (Incoming mail) di Odoo.

Comments

2 komentar untuk “Cara Setup Odoo 10 Outgoing Mail”

  1. Ping-kembali: Menerima Email (Incoming Mail) Melalui Odoo - Cak Juice

  2. Ping-kembali: Cara Setup Odoo 10 Incoming Mail - Cak Juice

Komentar ditutup.