Microsoft Outlook を使用して添付ファイルを送信する顧客がいます。ただし、odoo ではwinmail.dat
ファイルしか表示されません (メール クライアントではすべて問題ないように見えます)。
odoo に強制的にwinmail.dat
コンテンツを公開させる方法はありますか?
Microsoft Outlook を使用して添付ファイルを送信する顧客がいます。ただし、odoo ではwinmail.dat
ファイルしか表示されません (メール クライアントではすべて問題ないように見えます)。
odoo に強制的にwinmail.dat
コンテンツを公開させる方法はありますか?
問題は、Microsoft Outlook がTransport Neutral Encapsulation Formatを使用し、すべての添付ファイルを 1 つのファイルにまとめることです。
tnef フォーマット用の優れた python パーサーがあります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
カスタム モジュールの実行方法の詳細については、こちらを参照してください。