Odoo - outgoing email KeyError: 'body'

Odoo - outgoing email KeyError: 'body'

在 Odoo 9 社区外发电子邮件曾经有效(配置了 smtp 等),但现在我在尝试从任何帐户发送任何电子邮件(发票、内部注释等)时收到以下错误,对于任何模板。

自从它起作用以来我所做的更改可能(或可能不)与此问题有关:

知道为什么会这样吗?或者任何线索 "body" 键是什么以及它应该在哪里定义?谢谢!

Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 605, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 642, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 316, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 309, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 893, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 471, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 998, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 986, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 238, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 369, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/wizard/mail_compose_message.py", line 191, in send_mail_action
    return self.send_mail()
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/account/models/account_invoice.py", line 1306, in send_mail
    return super(MailComposeMessage, self).send_mail(auto_commit=auto_commit)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/wizard/mail_compose_message.py", line 248, in send_mail
    ActiveModel.browse(res_id).message_post(message_type='comment', subtype=subtype, **mail_values)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/models/mail_thread.py", line 1712, in message_post
    new_message = MailMessage.create(values)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/models/mail_message.py", line 864, in create
    user_signature=self.env.context.get('mail_notify_user_signature', True))
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/models/mail_message.py", line 926, in _notify
    partners._notify(self, force_send=force_send, user_signature=user_signature)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/models/res_partner.py", line 127, in _notify
    ('notify_email', '!=', 'none')])._notify_by_email(message, force_send=force_send, user_signature=user_signature)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 236, in wrapper
    return new_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/mail/models/res_partner.py", line 178, in _notify_by_email
    new_emails, new_recipients_nbr = self._notify_send(not_values['body'], not_values['subject'], recipient_template_values['not_followers'], **base_mail_values)
KeyError: 'body'

我自己没有解决这个问题,但是告诉我这个问题的人来自一个翻译文件和一个“<”符号,在 python 代码中被解释为小于。于是他修改了翻译文件,去掉了小于的那个。

@v11 odoo 社区

已解决错误:Odoo - 外发电子邮件 KeyError:'body'

当其他用户在联系人页面上发送消息时,它给出外发电子邮件 KeyError:'body'。 此错误是从邮件模板发生的:[邮件模块/数据/ mail_data.xml]

所以更改您的模板正文代码或者您也可以继承邮件模板:

  1. 删除此 mail_data.xml 文件中的额外内容

    % if ctx.get('website_url'):       
    % endif
    
  2. 只有这段代码可以正常工作 :

    <p style="color: #555555;">
      Sent by
      % if ctx.get('website_url'):
        <a href="${ctx['website_url']}" style="text-decoration:none; color: #875A7B;">
      % endif
      ${ctx.get('company_name')}
      </a>
      using
      <a target="_blank" href="https://www.odoo.com" style="text-decoration:none; color: #875A7B;">Odoo</a>.
    </p>
    

另参考 : https://i.stack.imgur.com/h8yMK.png