Odoo Help


I want send a mail through my own module?

on 7/1/16, 6:44 AM 1,008 views

I'm trying to create a module in which I want to send mail for customers.

My .py code is:

def send_mail(self, cr, uid, ids, context=None):

email_template_obj = self.pool.get('email.template')

template_ids = email_template_obj.search(cr, uid, [('model_id.model', '=', 'hr.employee')], context=context)

print template_ids

if template_ids:

values = email_template_obj.generate_email(cr, uid, template_ids[0], ids[0], context=context)

"""values['subject'] = subject

values['email_to'] = email_to

values['body_html'] = body_html

values['body'] = body_html"""

values['res_id'] = False

mail_mail_obj = self.pool.get('mail.mail')

msg_id = mail_mail_obj.create(cr, uid, values, context=context)

if msg_id:

mail_mail_obj.send(cr, uid, [msg_id], context=context)

return True

import smtplib

sender = 'username'

receivers = 'username'

message = """hai da


smtpObj = smtplib.SMTP(host='smtp.gmail.com', port=587)




smtpObj.login(user="********.com", password="********")

smtpObj.sendmail(sender, receivers, message)

print "Successfully sent email"

My xml code is:

<record id="event_YOUR_ID_mail_template" model="mail.template">

<field name="name">Name of template</field>

<!-- for example model - res.users -->

<field name="model_id" ref="todo.task.model_res_users"/>

<field name="email_from">ranjith@rcktechiees.com</field>

<field name="email_to" >mailofranjith@gmail.com</field>

<field name="subject">hi</field>

<field name="auto_delete" eval="True"/>

<field name="body_html"><![CDATA[Message of mail. <p>You can use here ${object.name} or any fields of object,</p> ]]></field>


But it show error as

Traceback (most recent call last):

File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 177, in run_wsgi


File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in execute

application_iter = app(environ, start_response)

File "/home/rck/odoo/openerp/service/server.py", line 291, in app

return self.app(e, s)

File "/home/rck/odoo/openerp/service/wsgi_server.py", line 216, in application

return application_unproxied(environ, start_response)

File "/home/rck/odoo/openerp/service/wsgi_server.py", line 202, in application_unproxied

result = handler(environ, start_response)

File "/home/rck/odoo/openerp/http.py", line 1296, in __call__

return self.dispatch(environ, start_response)

File "/home/rck/odoo/openerp/http.py", line 1270, in __call__

return self.app(environ, start_wrapped)

File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 588, in __call__

return self.app(environ, start_response)

File "/home/rck/odoo/openerp/http.py", line 1434, in dispatch

ir_http = request.registry['ir.http']

File "/home/rck/odoo/openerp/http.py", line 352, in registry

return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None

File "/home/rck/odoo/openerp/modules/registry.py", line 339, in get


File "/home/rck/odoo/openerp/modules/registry.py", line 370, in new

openerp.modules.load_modules(registry._db, force_demo, status, update_module)

File "/home/rck/odoo/openerp/modules/loading.py", line 351, in load_modules

force, status, report, loaded_modules, update_module)

File "/home/rck/odoo/openerp/modules/loading.py", line 255, in load_marked_modules

loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)

File "/home/rck/odoo/openerp/modules/loading.py", line 143, in load_module_graph


File "/home/rck/odoo/openerp/modules/module.py", line 315, in load_openerp_module

__import__('openerp.addons.' + module_name)

File "/home/rck/odoo/openerp/modules/module.py", line 80, in load_module

mod = imp.load_module('openerp.addons.' + module_part, f, path, descr)

File "/home/rck/odoo/addons/tech/__init__.py", line 3, in <module>

import models

File "/home/rck/odoo/addons/tech/models.py", line 3, in <module>

class TodoTask(models.Model):

File "/home/rck/odoo/addons/tech/models.py", line 42, in TodoTask

smtpObj.login(user="********.com", password="********")

File "/usr/lib/python2.7/smtplib.py", line 622, in login

raise SMTPAuthenticationError(code, resp)

SMTPAuthenticationError: (535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/answer/14257 rf14sm4597153pab.25 - gsmtp')

How can I achieve this? Help me with an example



Techno-Functional Associate with 7+ years of experience in Odoo (formerly known as OpenERP).

On 7/1/16, 8:01 AM

Your email configuration has failed, probably the username and password are incorrect.

Also I believe the port should be 25, please check again.

Further, test the connection in Odoo under Settings > Email > Outgoing.

then try to send a test mail from odoo, Settings > Email > Emails.

For detailed set up of Email settings, do refer the below link

How to set up e-mail/messaging with Odoo? 

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 7/1/16, 6:44 AM
Seen: 1008 times
Last updated: 7/1/16, 8:01 AM