Skip to content
Snippets Groups Projects
Commit 365a01ca authored by Stéphane Diemer's avatar Stéphane Diemer
Browse files

Use warning level when /etc/mailname seems to be not correct.

parent 8008cee2
No related branches found
No related tags found
No related merge requests found
...@@ -41,16 +41,10 @@ def check_listening_port(): ...@@ -41,16 +41,10 @@ def check_listening_port():
status, out = subprocess.getstatusoutput('netstat -pant | grep master | grep 127.0.0.1:25') status, out = subprocess.getstatusoutput('netstat -pant | grep master | grep 127.0.0.1:25')
if status != 0: if status != 0:
print_red('The port 25 is not listened by postfix "master" process.') print_red('The port 25 is not listened by postfix "master" process.')
return False return 1
else: else:
print_green('Postfix is listening port 25 correctly.') print_green('Postfix is listening port 25 correctly.')
return True return 0
def check_spf(ip):
status, output = subprocess.getstatusoutput('host -t TXT ubicast.eu')
if ip in output:
return True
def check_relay(): def check_relay():
...@@ -62,7 +56,6 @@ def check_relay(): ...@@ -62,7 +56,6 @@ def check_relay():
configured_relay = None configured_relay = None
if not configured_relay: if not configured_relay:
# no relay configured, check relayless situations # no relay configured, check relayless situations
# domain = '.'.join(conf.get('MS_SERVER_NAME').split('.')[-2:])
ip = conf.get('NETWORK_IP_NAT') ip = conf.get('NETWORK_IP_NAT')
if not ip: if not ip:
ip = conf.get('NETWORK_IP') ip = conf.get('NETWORK_IP')
...@@ -70,17 +63,19 @@ def check_relay(): ...@@ -70,17 +63,19 @@ def check_relay():
d = f.read().strip() d = f.read().strip()
if d not in ('ubicast.tv', 'ubicast.eu'): if d not in ('ubicast.tv', 'ubicast.eu'):
print_red('/etc/mailname does not contain ubicast.eu or ubicast.tv, mails will probably not be received on ubicast mailing lists') print_red('/etc/mailname does not contain ubicast.eu or ubicast.tv, mails will probably not be received on ubicast mailing lists')
return False return 2
if not check_spf(ip): # check spf
status, output = subprocess.getstatusoutput('host -t TXT ubicast.eu')
if ip not in output:
print_red('ip %s is not in ubicast.eu SPF and emails sent from support@ubicast.eu will be treated as spam' % ip) print_red('ip %s is not in ubicast.eu SPF and emails sent from support@ubicast.eu will be treated as spam' % ip)
return False return 1
conf_relay = conf.get('EMAIL_SMTP_SERVER') conf_relay = conf.get('EMAIL_SMTP_SERVER')
if conf_relay != configured_relay: if conf_relay != configured_relay:
print_red('Configured STMP relay (%s) does not match the expected value (%s).' % (configured_relay, conf_relay)) print_red('Configured STMP relay (%s) does not match the expected value (%s).' % (configured_relay, conf_relay))
return False return 1
else: else:
print_green('STMP relay is properly set.') print_green('STMP relay is properly set.')
return True return 1
def send_test_email(): def send_test_email():
...@@ -97,23 +92,24 @@ def send_test_email(): ...@@ -97,23 +92,24 @@ def send_test_email():
if status != 0: if status != 0:
print_red('Failed to send email.') print_red('Failed to send email.')
print('No log entry found using command: %s' % cmd) print('No log entry found using command: %s' % cmd)
return False return 1
if 'bounced' not in out or 'The email account that you tried to reach does not exist.' in out: if 'bounced' not in out or 'The email account that you tried to reach does not exist.' in out:
print_green('Email sent.') print_green('Email sent.')
return True return 0
else: else:
print_red('Failed to send email.') print_red('Failed to send email.')
print('Sending log line:\n%s' % out) print('Sending log line:\n%s' % out)
return False return 1
if not os.path.exists('/etc/postfix'): if not os.path.exists('/etc/postfix'):
print_red('Postfix dir does not exists, please install postfix.') print_red('Postfix dir does not exists, please install postfix.')
sys.exit(1) sys.exit(1)
all_ok = check_listening_port() rc = check_listening_port()
if all_ok: if rc == 0:
all_ok = all_ok and check_relay() rc = check_relay()
all_ok = all_ok and send_test_email() if send_test_email() == 1:
rc = 1
sys.exit(int(not all_ok)) sys.exit(rc)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment