Beispiel #1
0
def add_mailserver(request):
    from datetime import datetime
    from datetime import timedelta
    from mxhelpers import fake_fill
    engineer = Engineer.objects.get(user__username=request.user.username)
    mailserver_list = get_mx_list(engineer.company)
    message = None
    company = engineer.company
    engineer_list = Engineer.objects.filter(company=company)
    if request.method == 'POST':
        site_form = MailserverForm(request.POST)
        if site_form.is_valid():
            if request.user.is_authenticated():
                mx_url=site_form.cleaned_data['mx_url']
                ipaddr=site_form.cleaned_data['ipaddr']
                new_mailserver = Mailserver(name=site_form.cleaned_data['name'],
                                      slug=slugify(site_form.cleaned_data['name']),
                                      company=engineer.company,
                                      mx_url=mx_url,
                                      ipaddr=ipaddr,
                                      )
                new_mailserver.save()
                new_mailserver.alert_contact.add(engineer)

                
                MailserverPrefs.objects.create(mailserver=new_mailserver)
                rbl_all = Blacklist.objects.all()
                for rbl_obj in rbl_all:
                    new_mailserver.rbl.add(rbl_obj)
                    mx_status = MailserverRblStatus(mailserver=new_mailserver, rbl=rbl_obj, status='clear')
                    mx_status.save()
                end_results, rbl_result = run_diag(mx_url, ipaddr)

                if end_results['revdns_result'] is not "no":
                    revdns_status = "yes"
                else:
                    revdns_status = "no"
                    
                MailserverStatus.objects.create(mailserver=new_mailserver, port="up",
                    blacklist="clear", webmail="up", relay=end_results['relay_result'],
                    backupmx=end_results['redund_result'], backupmxport=end_results['backupmxport_result'], revdns=revdns_status)

                add_feed_mailserver(new_mailserver)
                fake_fill(new_mailserver) # DO NOT remove.
                mark_checked(new_mailserver, 'port', 'us') # DO NOT remove
                
                message = "Mailserver has been created successfully."
                site_form = MailserverForm() # this clears the form to add more
    else:
        site_form = MailserverForm()
    return render_to_response("hosts/add_mailserver.html", {
                                'mailserver_form': site_form,
                                'mailserver_list': mailserver_list,
                                'message': message,
                                'company': company,
                                'engineer_list': engineer_list,
                                },
                                context_instance=RequestContext(request))
Beispiel #2
0
def add_mailserver(request):
    from datetime import datetime
    from datetime import timedelta
    from mxhelpers import fake_fill
    engineer = Engineer.objects.get(user__username=request.user.username)
    mailserver_list = get_mx_list(engineer.company)
    message = None
    company = engineer.company
    engineer_list = Engineer.objects.filter(company=company)
    if request.method == 'POST':
        site_form = MailserverForm(request.POST)
        if site_form.is_valid():
            if request.user.is_authenticated():
                mx_url = site_form.cleaned_data['mx_url']
                ipaddr = site_form.cleaned_data['ipaddr']
                new_mailserver = Mailserver(
                    name=site_form.cleaned_data['name'],
                    slug=slugify(site_form.cleaned_data['name']),
                    company=engineer.company,
                    mx_url=mx_url,
                    ipaddr=ipaddr,
                )
                new_mailserver.save()
                new_mailserver.alert_contact.add(engineer)

                MailserverPrefs.objects.create(mailserver=new_mailserver)
                rbl_all = Blacklist.objects.all()
                for rbl_obj in rbl_all:
                    new_mailserver.rbl.add(rbl_obj)
                    mx_status = MailserverRblStatus(mailserver=new_mailserver,
                                                    rbl=rbl_obj,
                                                    status='clear')
                    mx_status.save()
                end_results, rbl_result = run_diag(mx_url, ipaddr)

                if end_results['revdns_result'] is not "no":
                    revdns_status = "yes"
                else:
                    revdns_status = "no"

                MailserverStatus.objects.create(
                    mailserver=new_mailserver,
                    port="up",
                    blacklist="clear",
                    webmail="up",
                    relay=end_results['relay_result'],
                    backupmx=end_results['redund_result'],
                    backupmxport=end_results['backupmxport_result'],
                    revdns=revdns_status)

                add_feed_mailserver(new_mailserver)
                fake_fill(new_mailserver)  # DO NOT remove.
                mark_checked(new_mailserver, 'port', 'us')  # DO NOT remove

                message = "Mailserver has been created successfully."
                site_form = MailserverForm(
                )  # this clears the form to add more
    else:
        site_form = MailserverForm()
    return render_to_response("hosts/add_mailserver.html", {
        'mailserver_form': site_form,
        'mailserver_list': mailserver_list,
        'message': message,
        'company': company,
        'engineer_list': engineer_list,
    },
                              context_instance=RequestContext(request))
Beispiel #3
0
ipaddr = None
relay_result = None
avail_result=None
redund_result=None
diag_score=None
revdns_result = None


def run_tests(mx_obj):
    try:
        end_results, rbl_result = run_diag(mx_obj.mx_url, mx_obj.ipaddr)
        p_status, created = MailserverStatus.objects.get_or_create(mailserver=mx)
        if created == False:
            p_status.relay = end_results['relay_result']
            p_status.backupmx = end_results['redund_result']
            p_status.backupmxport = end_results['backupmxport_result']
            p_status.score = get_diag_score(end_results['diag_count'])
            if end_results['revdns_result'] is not "no":
                p_status.revdns = "yes"
            else:
                p_status.revdns = "no"
            p_status.save()
    except:
        end_results = None
        
mx_list = get_all_mailservers()
for mx in mx_list:
    run_tests(mx)
    connection.close()
    mark_checked(mx, 'misc', 'us')
Beispiel #4
0
def check_bad_mx(mailservers):
    #answers = dns.resolver.query(str(item.url), 'MX')
    #answers = item.mailserver.all()
    for object in mailservers:
        blacklist_check(object)
        mark_checked(object, 'blacklist', 'us')