diff --git a/data/actionsmap/yunohost.yml b/data/actionsmap/yunohost.yml
index 0374bce7..80a74251 100644
--- a/data/actionsmap/yunohost.yml
+++ b/data/actionsmap/yunohost.yml
@@ -291,6 +291,18 @@ domain:
                     extra:
                         pattern: *pattern_domain
 
+        ### domain_dns_conf()
+        dns-conf:
+            action_help: Generate DNS configuration for a domain
+            api: GET /domains/<domain>/dns
+            configuration:
+                lock: false
+                authenticate:
+                    - api
+            arguments:
+                domain:
+                    help: Target domain
+
         ### domain_info()
 #        info:
 #            action_help: Get domain informations
diff --git a/src/yunohost/domain.py b/src/yunohost/domain.py
index 53b93835..535b94d4 100644
--- a/src/yunohost/domain.py
+++ b/src/yunohost/domain.py
@@ -218,3 +218,38 @@ def domain_remove(auth, domain, force=False):
     hook_callback('post_domain_remove', args=[domain])
 
     msignals.display(m18n.n('domain_deleted'), 'success')
+
+
+def domain_dns_conf(domain):
+    """
+    Generate DNS configuration for a domain
+
+    Keyword argument:
+        domain -- Domain name
+    """
+
+    ip4 = urlopen("http://ip.yunohost.org").read().strip()
+
+    result = "@ 1400 IN A {ip4}\n* 1400 IN A {ip4}\n".format(ip4=ip4)
+
+    ip6 = None
+
+    try:
+        ip6 = urlopen("http://ip6.yunohost.org").read().strip()
+    except Exception:
+        pass
+    else:
+        result += "@ 1400 IN AAAA {ip6}\n* 1400 IN AAAA {ip6}\n".format(ip6=ip6)
+
+    result += "\n_xmpp-client._tcp 14400 IN SRV 0 5 5222 {domain}.\n_xmpp-server._tcp 14400 IN SRV 0 5 5269 {domain}.\n".format(domain=domain)
+
+    result += "muc 1800 IN CNAME @\npubsub 1800 IN CNAME @\nvjud 1800 IN CNAME @\n\n"
+
+    result += "@ 1400 IN MX 10 {domain}.\n".format(domain=domain)
+
+    if ip6 is None:
+        result += '@ 1400 IN TXT "v=spf1 a mx ip4:{ip4} -all"\n'.format(ip4=ip4)
+    else:
+        result += '@ 1400 IN TXT "v=spf1 a mx ip4:{ip4} ip6:{ip6} -all"\n'.format(ip4=ip4, ip6=ip6)
+
+    return result