Я работаю в приложении, которое отправляет файл 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()
Я не знаю, если проблема заключается в порт, который я использую, чтобы отправить почту, но мне сказали, что, возможно, этот вопрос получается, что.
Никаких изменений в этот код не может исправить, если ваш университет блокирует исходящий доступ к порту 587. – tripleee
Вы должны показать какую-то информацию отладки для людей, чтобы помочь вам. Как упомянуто выше, это может быть брандмауэр, блокирующий ваше соединение TLS, но маловероятно, потому что студенты всегда получают доступ к gmail. Покажите вывод «traceback», чтобы понять проблему – gixxer