From 8d520762e62a02f9a4cc4eb3b4e05542200022c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Sun, 28 Feb 2016 19:21:25 +0100 Subject: [PATCH] [enh] Add DKIM DNS record in domain_dns_conf (close #198) --- src/yunohost/domain.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/yunohost/domain.py b/src/yunohost/domain.py index f973b758d..e42126f6e 100644 --- a/src/yunohost/domain.py +++ b/src/yunohost/domain.py @@ -255,4 +255,22 @@ def domain_dns_conf(domain, ttl=None): else: result += '@ {ttl} IN TXT "v=spf1 a mx ip4:{ip4} ip6:{ip6} -all"\n'.format(ttl=ttl, ip4=ip4, ip6=ip6) + try: + with open('/etc/dkim/{domain}.mail.txt'.format(domain=domain)) as f: + dkim_content = f.read() + except IOError: + pass + else: + dkim = re.match(( + r'^(?P[a-z_\-\.]+)[\s]+([0-9]+[\s]+)?IN[\s]+TXT[\s]+[^"]*' + '(?=.*(;[\s]*|")v=(?P[^";]+))' + '(?=.*(;[\s]*|")k=(?P[^";]+))' + '(?=.*(;[\s]*|")p=(?P

[^";]+))'), dkim_content, re.M|re.S + ) + if dkim: + result += '{domain} {ttl} IN TXT "v={v}; k={k}; p={p}"'.format( + domain=dkim.group('domain'), ttl=ttl, + v=dkim.group('v'), k=dkim.group('k'), p=dkim.group('p') + ) + return result