Mail-Address Check: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Sigi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sigi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 6: | Zeile 6: | ||
# | # | ||
# This program is absolutely free software. | # This program is absolutely free software. | ||
# Use it as you like but don't point the finger of blame to me | # Use it as you like but don't point the finger of blame to me. | ||
# | # | ||
Version vom 26. Dezember 2015, 01:19 Uhr
<syntaxhighlight lang="python">
- !/usr/bin/python
- Copyright (c) 2015 by Peter_Siegrist(SystemLoesungen) (PSS @ ZweierNet.ch)
- pss.ZweierNet.ch
- This program is absolutely free software.
- Use it as you like but don't point the finger of blame to me.
from socket import *
import sys
import string
verbose = False mail_to_check = "";
commands = ['HELO xy',
'RSET',
'MAIL FROM: mailverification@zweiernet.ch',
'RCPT TO: <__mail_to_check__>']
- -- subs
def usage ():
print('usage: ', sys.argv[0], '[-v] < mailserver-to-check-for > < port-on-server-25-or-587 > < email-adress-to-check >')
sys.exit(False)
- -- end subs
if len(sys.argv) < 4:
usage()
i = 1 if len(sys.argv) == 5:
if sys.argv[i] == '-v':
verbose = True
i+=1
else:
usage()
server = sys.argv[i] i+=1 port = int(sys.argv[i]) i+=1 mail_to_check = sys.argv[i]
sSocket = socket(AF_INET, SOCK_STREAM) sSocket.connect((server, port)) recv = sSocket.recv(1024) if verbose:
print (recv.decode())
for c in commands:
c = c.replace('__mail_to_check__', str(mail_to_check))
if verbose:
print(c)
sSocket.send(c.encode() + '\r\n'.encode())
recv = sSocket.recv(1024)
if verbose:
print (recv.decode())
recv5 = recv.decode().replace("\n", "").replace("\r", "") if recv5[-2:].lower() == 'ok':
if verbose:
print ('OK')
sys.exit(True)
if verbose:
print ('NOK')
sys.exit(False)