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.
keine Änderungen an diesem Code kann es beheben, wenn Ihre Universität blockiert abgehende Zugriff auf Port 587. – tripleee
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