我正在使用一个将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()
我不知道问题是否是我用来发送邮件的端口,但我被告知可能问题是由此产生的。
答案 0 :(得分:0)
启用SMTP会话调试。它应该提供一些线索。
https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.set_debuglevel