我正在编写一个程序来帮助学校的生物系,它涉及发送电子邮件。我已经收集了消息内容所需的所有变量,它只是实际发送导致某些问题的电子邮件。
我环顾四周,发现我正在使用发送到gmail的代码,而学校的服务器使用的是Outlook 2010.一旦我记得,我四处寻找发送电子邮件的python代码,但到目前为止没有任何效果。
发送电子邮件似乎非常复杂,但我需要一些帮助才能离开这里。
gsal.org.uk是我们学校的网络服务器地址,是一个Outlook服务器。
我收到的当前错误是smtplib.SMTPException: STARTTLS extension not supported by server.
,但我一直在接受各种错误。
这是代码:
fromaddr = "test@gsal.org.uk"
toaddrs = "technicians@gsal.org.uk"
msg = "\r\n".join([
"From: user",
"To: user",
"Subject: Practical Request",
"",
"Test"
])
server = smtplib.SMTP_SSL('smtp.gmail.com:465')
server.ehlo()
server.starttls()
# server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
messagebox.showinfo("Success!", "Your request has been sent successfully.")
我想要做的就是从电子邮件帐户(在程序中指定)发送一封电子邮件,该电子邮件帐户即将在学校设置,名为 technicians@gsal.org.uk 。任何帮助表示赞赏。
我想补充一点,如果我删除了starttls()行,我会得到这个:
smtplib.SMTPSenderRefused: (530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/answer/14257 hw1sm42144009wjb.6 - gsmtp', 'test@gsal.org.uk')
我已经阅读了该链接,但它似乎在谈论gmail?我想用outlook吗?我知道我需要进行身份验证,但是如何进行身份验证?
答案 0 :(得分:1)
为了对抗垃圾邮件并保护资源,通常配置的SMTP服务器仅向其所有者(例如公司,组织或注册客户)提供其服务。例如。您的学校服务器可能只接受邮件:
此外,SMTP服务器与TCP端口25上的其他服务器以及用户在端口465或587上提交新邮件(在您的情况下)进行通信。(过去使用端口25用于所有邮件,现在不推荐使用)
端口465上的通信始终是加密的(TLS)。端口587上的通信以纯文本格式启动,但使用STARTTLS命令时,加密功能将打开。成功的STARTTLS通常需要允许身份验证(登录)。
为什么你的程序不起作用?
应该有什么帮助?有关使用学校自己的服务器的详细信息,请与当地管理员联系。