2016-07-31 6 views
0

Я работаю в приложении, которое отправляет файл icalendar на почту, и у меня есть проблема с ним. Основной факт заключается в том, что приложение работает правильно во всех случаях, кроме одного. Я тестировал приложение с Wi-Fi моего университета (только студенты имеют доступ к этому Wi-Fi), и его нельзя было отправить (приложение входит в цикл, и почта не может быть отправлена). Здесь я прилагаю код, который я использую для отправки почты. Я думаю, что, возможно, проблема связана с портами (возможно, они не открывают все порты в свободном Wi-Fi моего университета). Если кто-то знает лучший способ, который не мог бы потерпеть неудачу, это было бы хорошо, потому что единственная проблема, с которой я сталкиваюсь с приложением, - отправить почту с этим специальным Wi-Fi (с другими работами wifi). Код:Проблема отправки почты с 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() 

Я не знаю, если проблема заключается в порт, который я использую, чтобы отправить почту, но мне сказали, что, возможно, этот вопрос получается, что.

+0

Никаких изменений в этот код не может исправить, если ваш университет блокирует исходящий доступ к порту 587. – tripleee

+0

Вы должны показать какую-то информацию отладки для людей, чтобы помочь вам. Как упомянуто выше, это может быть брандмауэр, блокирующий ваше соединение TLS, но маловероятно, потому что студенты всегда получают доступ к gmail. Покажите вывод «traceback», чтобы понять проблему – gixxer

ответ