通过python从一个outlook帐户向另一个发送电子邮件



我正在编写一个程序来帮助学校的生物系,其中包括发送电子邮件。我已经收集了消息内容所需的所有变量,只是电子邮件的实际发送导致了一些问题。

我环顾四周,意识到我使用的是发送到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 = "rn".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 atn5.5.1 https://support.google.com/mail/answer/14257 hw1sm42144009wjb.6 - gsmtp', 'test@gsal.org.uk')

我读过那个链接,但它似乎在谈论gmail?我想使用outlook?我知道我需要进行身份验证,但怎么做呢?

为了打击垃圾邮件和保护资源,通常配置的SMTP服务器只向其所有者(例如公司、组织或注册客户)提供服务。你的学校服务器可能只接受以下情况的邮件:

  • 寄往学校自己的域名,或
  • 来自经过认证的人(如学生、教师),或
  • 来自IP地址属于学校局域网的主机(在管理员允许的情况下)

此外,SMTP服务器在TCP端口25上与其他服务器通信,并在端口465或587上与提交新邮件的用户通信。(端口25过去用于所有邮件,现在已弃用)

端口465上的通信始终是加密的(TLS)。端口587上的通信以明文启动,但使用STARTTLS命令时,会打开加密。通常需要成功的STARTTLS才能进行身份验证(登录)。


为什么你的程序不起作用?

  • 您正在尝试在TLS连接上启动TLS。它已经启动。不要启动TLS,或者将端口更改为587
  • 您正在使用gmail的服务器发送一条未指向gmail的消息。在这种情况下,您必须以注册gmail用户的身份使用名称和密码登录

什么应该有帮助?有关使用学校自己的服务器的详细信息,请联系当地管理员。

相关内容

最新更新