使用smtp python发送邮件问题

时间:2016-07-31 19:38:36

标签: python email smtp port icalendar

我正在使用一个将icalendar文件发送到邮件的应用程序,我遇到了问题。主要的事实是应用程序在所有情况下以适当的方式工作,除了一个。我一直在用我的大学的wifi测试应用程序(只有学生可以访问这个wifi)并且无法发送(应用程序进入循环并且无法发送邮件)。我在这里附上我用来发送邮件的代码。我想也许问题出在端口上(可能不会打开我大学免费wifi上的所有端口)。如果有人知道一个不会失败的更好的方法,那就太好了,因为我对应用程序的唯一问题是发送带有这个特殊wifi的邮件(其他wifi工作正常)。代码:

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 = "adress@gmail.com"
    toaddr = mail.strip()
    msg = MIMEMultipart('alternative')
    msg['From'] = "Contact <adress@gmail.com>"
    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()   

我不知道问题是否是我用来发送邮件的端口,但我被告知可能问题是由此产生的。

1 个答案:

答案 0 :(得分:0)

启用SMTP会话调试。它应该提供一些线索。

https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debuglevel