2016-07-31 7 views
0

Ich arbeite in einer App, die eine Icalendar-Datei an eine E-Mail sendet, und ich habe ein Problem damit. Die wichtigste Tatsache ist, dass die App in allen Fällen bis auf eine korrekt funktioniert. Ich habe die App mit dem WLAN meiner Universität getestet (nur Studenten haben Zugang zu diesem WLAN) und es konnte nicht gesendet werden (die App in einer Schleife eingeben und die Mail kann nicht gesendet werden). Ich füge hier den Code ein, mit dem ich die Mail verschicke. Ich denke, dass vielleicht das Problem mit den Häfen ist (vielleicht sind nicht alle Häfen im freien Wifi meiner Universität geöffnet). Wenn jemand einen besseren Weg kennt, der nicht scheitern könnte, wäre es nett, denn das einzige Problem, das ich mit der App habe, ist das Senden der Mail mit diesem speziellen WLAN (mit anderen WLAN funktioniert ordnungsgemäß). Code:Problem Senden von E-Mails mit SMTP Python

import smtplib 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
from email.MIMEBase import MIMEBase 
from email import encoders 

def send_mail(mail): 
    fromaddr = "[email protected]" 
    toaddr = mail.strip() 
    msg = MIMEMultipart('alternative') 
    msg['From'] = "Contact <[email protected]>" 
    msg['To'] = toaddr 
    msg['Subject'] = u"Subject" 
    body = """Body""" 
    msg.attach(MIMEText(body, "html") 
    filename = "fileattached.ics" 
    part = MIMEBase('application', 'octet-stream',name=filename) 
    part.set_payload(cal.to_ical()) 
    encoders.encode_base64(part) 
    part.add_header('Content-Disposition', "attachment; filename= %s" % filename) 
    server = smtplib.SMTP('smtp.gmail.com', 587) 
    server.starttls() 
    server.login(fromaddr, "password") 
    text = msg.as_string() 
    server.sendmail(fromaddr, toaddr, text) 
    server.quit() 

Ich weiß nicht, ob das Problem der Port ist, dass ich die E-Mail senden bin, aber ich habe gesagt, dass vielleicht das Problem durch das produziert wird.

+0

keine Änderungen an diesem Code kann es beheben, wenn Ihre Universität blockiert abgehende Zugriff auf Port 587. – tripleee

+0

Sie benötigen eine Art von Debug-Informationen zu zeigen, für die Menschen, Ihnen zu helfen. Wie von Triplee erwähnt, könnte es eine Firewall sein, die Ihre TLS-Verbindung blockiert. Dies ist jedoch unwahrscheinlich, da die Schüler immer auf Google Mail zugreifen. Zeigen Sie die 'traceback'-Ausgabe an, um das Problem zu verstehen – gixxer

Antwort