summaryrefslogtreecommitdiff
path: root/config.sh
blob: 8450070aff58893cf686dbdbe8806294a971f305 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
./hostname | tr '[A-Z]' '[a-z]' | (
  if read host
  then
    echo Your hostname is "$host".
    ./dnsfq "$host" | tr '[A-Z]' '[a-z]' | (
      if read fqdn
      then
        echo Your host\'s fully qualified name in DNS is "$fqdn".
	echo Putting "$fqdn" into control/me...
	echo "$fqdn" > QMAIL/control/me
	chmod 644 QMAIL/control/me
	( echo "$fqdn" | sed 's/^\([^\.]*\)\.\([^\.]*\)\./\2\./' | (
	  read ddom
	  echo Putting "$ddom" into control/defaultdomain...
	  echo "$ddom" > QMAIL/control/defaultdomain
	  chmod 644 QMAIL/control/defaultdomain
	) )
	( echo "$fqdn" | sed 's/^.*\.\([^\.]*\)\.\([^\.]*\)$/\1.\2/' | (
	  read pdom
	  echo Putting "$pdom" into control/plusdomain...
	  echo "$pdom" > QMAIL/control/plusdomain
	  chmod 644 QMAIL/control/plusdomain
	) )
	echo ' '
	echo Checking local IP addresses:
	: > QMAIL/control/locals
	chmod 644 QMAIL/control/locals
	( ./dnsip "$fqdn"
	  ./ipmeprint ) | sort -u | \
	(
	  while read localip
	  do
	    echo "$localip: " | tr -d '\012'
	    ./dnsptr "$localip" 2>/dev/null | (
	      if read local
	      then
		echo Adding "$local" to control/locals...
		echo "$local" >> QMAIL/control/locals
	      else
		echo PTR lookup failed. I assume this address has no DNS name.
	      fi
	    )
	  done
	)
	echo ' '
	echo If there are any other domain names that point to you,
	echo you will have to add them to QMAIL/control/locals.
	echo You don\'t have to worry about aliases, i.e., domains with CNAME records.
	echo ' '
	echo Copying QMAIL/control/locals to QMAIL/control/rcpthosts...
	cp QMAIL/control/locals QMAIL/control/rcpthosts
	chmod 644 QMAIL/control/rcpthosts
	echo 'Now qmail will refuse to accept SMTP messages except to those hosts.'
	echo 'Make sure to change rcpthosts if you add hosts to locals or virtualdomains!'
      else
        echo Sorry, I couldn\'t find your host\'s canonical name in DNS.
        echo You will have to set up control/me yourself.
      fi
    )
  else
    echo Sorry, I couldn\'t find your hostname.
    echo You will have to set up control/me yourself.
  fi
)