使用admin用户,我可以做任何事情,添加,删除,修改等等。应该如此。 当我添加完成电子邮件配置的新用户(可以在openerp消息传递模块上发送和接收电子邮件),但当我调用我的函数时,从我的自定义模块发送电子邮件:
<button name="send_email" string="Notifier Participants" states="open" type="object" icon="gtk-jump-to"/>
我的功能:
def send_email(self, cr, uid, ids, context=None):
res_id=''
objects_review = self.browse(cr, uid, ids, context=context)
for object_review in objects_review:
participant_names=''
for user_id in object_review.user_ids:
participant_names += '<tr><td>'+user_id.name+'<td></tr>'
email_template_obj = self.pool.get('email.template')
template_ids = email_template_obj.search(cr, uid, [], context=context)
if template_ids:
current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
values = email_template_obj.generate_email(cr, uid, template_ids[0], ids, context=context)
values['subject'] = object_review.name
values['email_from'] = current_user.email
values['email_to'] = object_review.participant_emails
values['body_html'] = 'Bonjour, </br> Convocation à la revue
:</br> <table><tr><td>Revue :
</td>'+'<td>'+str(object_review.name)+'</td></tr><tr>
<td>Référence</td><td>'+str(object_review.reference)+'</td>
</tr><tr><td>Date de la Revue</td>
<td>'+str(object_review.date)+'</td></tr><tr><td>
Lieu de la Revue</td><td>'+str(object_review.lieu)+'
</td></tr><tr><td>Type de la Revue</td>
<td>'+str(object_review.type.name)+'</td></tr><tr><table>
<th>Participants</th>'+participant_names+'</table></tr>
<tr><td>Object :</td><td>'+str(object_review.objet)
or ''+'</td></tr></table>'
values['body'] = '<table><tr><td> </td></tr></table>'
values['res_id'] = False
mail_mail_obj = self.pool.get('mail.mail')
msg_id = mail_mail_obj.create(cr, uid, values, context=context)
mail_mail_obj.send(cr, uid, [msg_id], context=context)
#email_template_obj.send_mail(cr, uid, template_ids[0], ids[0], force_send=True, context=context)
return True
我收到了这个错误:
{&#39; body&#39;:你&#39;
你好,
\ n \ n \ n&#39;,&#39;附件&#39;: [],&#39; attachment_ids&#39;:[],&#39; auto_delete&#39;:是的,&#39; email_recipients&#39;:False,&#39; body_html&#39;:u&#39; Bonjour,Convocation \ xe0 la revue:Revue:dfR \ xe9f \ xe9rence / 001 / 2015Date de la Revue2015-09-16 14:57:32Lieu de la RevueFalseType de la RevueNoneParticipantsAdministratorObject:False&#39;,&#39; mail_server_id&#39 ;:错误,&#39; email_to&#39;:你&#39; admin@example.com',&#39; reply_to&#39;:False,&#39; email_cc&#39;:False,&# 39;模特&#39;:你&#39; document.page.history&#39;,&#39; res_id&#39;:False,&#39; email_from&#39;:u&#39; echange.nad@gmail。 com&#39;,&#39; subject&#39;:你&#39; df&#39;} 2015-09-16 14:59:57,552 5688警告tist openerp.osv.orm:型号mail.mail:attachments,email_recipients中没有此类字段。 2015-09-16 14:59:57,564 5688 ERROR tist openerp.netsvc:访问被拒绝 由于安全限制,无法完成请求的操作。请与您的系统管理员联系。
(文档类型:消息,操作:创建) Traceback(最近一次调用最后一次): 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/netsvc.py",第306行,在dispatch_rpc中 result = ExportService.getService(service_name).dispatch(method,params) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/service/web_services.py" ;,第632行,发送 res = fn(db,uid,* params) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py" ;,第190行,在execute_kw中 return self.execute(db,uid,obj,method,* args,** kw或{}) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py" ;,第132行,在包装器中 return f(self,dbname,* args,** kwargs) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py" ;,第199行,执行 res = self.execute_cr(cr,uid,obj,method,* args,** kw) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/audittrail/audittrail.py" ;,第532行,在execute_cr中 return fct_src(cr,uid,model,method,* args,** kw) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/osv.py" ;,第187行,在execute_cr中 return getattr(object,method)(cr,uid,* args,** kw) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/mgmtsystem_review/mgmtsystem_review.py",第129行,在send_email中 msg_id = mail_mail_obj.create(cr,uid,values,context = context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/fetchmail/fetchmail.py" ;,第305行,在创建中 res = super(mail_mail,self).create(cr,uid,values,context = context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_mail.py",第93行,在创建中 return super(mail_mail,self).create(cr,uid,values,context = context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py" ;,第4489行,在创建 record_id = self.pool.get(table).create(cr,user,tocreate [table],context = parent_context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py" ;,第754行,在创建中 newid = super(mail_message,self).create(cr,uid,values,context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/osv/orm.py" ;,第4615行,在创建中 self.check_access_rule(cr,user,[id_new],&#39; create&#39;,context = context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/portal/mail_message.py" ;,第63行,在check_access_rule中 return super(mail_message,self).check_access_rule(cr,uid,ids = ids,operation = operation,context = context) 文件&#34; /home/nadia/barid/server2/openerp15-9-15/openerp/addons/mail/mail_message.py" ;,第744行,在check_access_rule中 (self._description,operation)) except_osv :(由于安全限制,访问被拒绝&#39;,u&#39;请求的操作无法完成。请与您的系统管理员联系。\ n \ n(文档类型:消息,操作:创建)&# 39)
我使用函数send_mail而不是send,我有同样的问题
所以我在模型mail.message上创建了一条规则:
<record id="mes_email_rule" model="ir.rule">
<field name="name">Email send</field>
<field name="model_id" ref="mail.model_mail_message"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field eval="True" name="perm_unlink"/>
<field eval="True" name="perm_write"/>
<field eval="True" name="perm_read"/>
<field eval="True" name="perm_create"/>
但仍有同样的问题。
答案 0 :(得分:0)
我通过创建一个动作服务器解决了这个问题,我从我的按钮调用发送电子邮件,所以我不再使用send_email函数了。