| 1 | 1 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,31 @@ |
| 1 |
+#!/bin/sh |
|
| 2 |
+set -euC |
|
| 3 |
+ |
|
| 4 |
+# nfsn-dns-dmarc DOMAIN NAME EMAIL_NAME POLICY |
|
| 5 |
+ |
|
| 6 |
+# nfsn-dns-dmarc "example.com" "" "" "none" |
|
| 7 |
+# nfsn-dns-dmarc "example.com" "" "" "quarantine" |
|
| 8 |
+# nfsn-dns-dmarc "example.com" "" "" "reject" |
|
| 9 |
+ |
|
| 10 |
+# Arguments. |
|
| 11 |
+ |
|
| 12 |
+domain="$1" ; shift |
|
| 13 |
+name="$1" ; shift |
|
| 14 |
+email_name="${1:-"postmaster"}" ; shift
|
|
| 15 |
+policy="$1" ; shift |
|
| 16 |
+ |
|
| 17 |
+# Process. |
|
| 18 |
+ |
|
| 19 |
+name="_dmarc${name:+".$name"}"
|
|
| 20 |
+data="$( |
|
| 21 |
+ printf "%s" \ |
|
| 22 |
+ "v=DMARC1; " \ |
|
| 23 |
+ "p=$policy; " \ |
|
| 24 |
+ "sp=$policy; " \ |
|
| 25 |
+ "pct=100; " \ |
|
| 26 |
+ "rua=mailto:$email_name@$domain" |
|
| 27 |
+)" |
|
| 28 |
+ |
|
| 29 |
+# Update. |
|
| 30 |
+ |
|
| 31 |
+nfsn-dns-update "$domain" "$name" "TXT" '' "$data" |