Odoo: Как обработать winmail.dat прикрепленный в разговорах?
У нас есть клиенты, которые используют Microsoft Outlook для отправки вложений. Однако в odoo мы видим только winmail.dat
файлы (пока все выглядит нормально в почтовом клиенте).
Есть ли способ заставить odoo выставить winmail.dat
содержание?
1 ответ
Решение
Проблема заключается в том, что Microsoft Outlook использует транспортный нейтральный формат инкапсуляции и упаковывает все вложения в один файл.
Есть хороший анализатор python для формата tnef - tnefparse
, Я бы посоветовал вам использовать его и написать простой модуль для расширения mail.thread
модель как эта
from tnefparse import TNEF
from openerp.osv import osv
class MailThread(osv.Model):
_inherit = 'mail.thread'
def _message_extract_payload(self, message, save_original=False):
body, attachments = \
super(MailThread, self)\
._message_extract_payload(message, save_original=save_original)
new_attachments = []
for name, content in attachments:
new_attachments.append((name, content))
if name and name.strip().lower() in ['winmail.dat', 'win.dat']:
try:
winmail = TNEF(content)
for attach in winmail.attachments:
new_attachments.append((attach.name, attach.data))
except:
# some processing here
pass
return body, new_attachments
Вы можете найти больше информации о том, как сделать пользовательские модули здесь.