Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
Please see if you could help on my issue with creating mail.mail records for sending email to external email accounts. I am using mail.mail model to create email from Email Templates to send email externally.
Following is the code that does the sending:
def send_email(self, cr, uid, ids, email_content, context=None): email_template_obj = self.pool.get('email.template') template_ids = email_template_obj.search(cr, uid, [('model_id.model', '=',email_content["model"])], context=context) if template_ids: values = email_template_obj.generate_email(cr, uid, template_ids, ids, context=context) values['subject'] = email_content["subject"] values['email_to'] = email_content["to"] values['body_html'] = email_content["body"] values['body'] = email_content["body"] 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
The error occurred on the line "msg_id = mail_mail_obj.create(cr, uid, values, context=context)" I received error message in the web browser saying: Access Denied The requested operation cannot be completed due to security restrictions. Please contact your system administrator. (Document type: Message, Operation: create)
The user is already in the Human Resource / Employee group which allows create for mail.mail and mail.message, and I have tried explicitly added Access Rights to create mail.mail records in group but i am still being denied access.
Please help. I am at my wits end. Aaron
In case anyone also have this same problem, I have resolved this problem by using another method to send email to external email accounts.
Below is the new way of sending email using email.template
def send_email(self, cr, uid, model, res_id, context=None): email_template_obj = self.pool.get('email.template') template_ids = email_template_obj.search(cr, uid, [('model_id.model', '=',model)], context=context) if template_ids: email_template_obj.send_mail(cr, uid, template_ids, res_id, force_send=True, context=context) return True
By not using mail.mail, I have avoided the problem. Tested with a user assigned to Human Resource / Employee group, the user is able to send out the email successfully.
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.Register
Odoo Training Center
Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.Test it now
|Asked: 11/1/13, 9:05 AM|
|Seen: 1619 times|
|Last updated: 3/16/15, 8:10 AM|