在 linux 机器上使用 python 发送邮件

Sending mail using python in linux machine

我在 jupyter 中 运行 代码时收到邮件,但我在我的 Linux 邮箱中尝试通过 python 我没有收到任何邮件。

下面是代码:

#! /usr/bin/python
import smtplib
import ssl

port = 587
smtp_server = "smtp-mail.outlook.com"
sender = "example@outlook.com"
recipient = "example@outlook.com"
sender_password = "Password"

message = """
Subject: This is a test message
Sent using Python."""

SSL_context = ssl.create_default_context()

with smtplib.SMTP(smtp_server, port) as server:
    server.starttls(context=SSL_context)
    server.login(sender, sender_password)
    server.sendmail(sender, recipient, message)

您正在尝试将 Outlook 与 SMTP 连接。您应该要求您的电子邮件帐户允许 smtp,默认情况下不一定启用。

此外,您可以尝试基于库的其他解决方案;

from O365 import Message

html_template =     """ 
            <html>
            <head>
                <title></title>
            </head>
            <body>
                    {}
            </body>
            </html>
        """

final_html_data = html_template.format(df.to_html(index=False))

o365_auth = ('sender_username@company_email.com','Password')
m = Message(auth=o365_auth)
m.setRecipients('receiver_username@company_email.com')
m.setSubject('Weekly report')
m.setBodyHTML(final)
m.sendMessage()

来自

或 安装 redmail:

pip install redmail

并尝试使用此示例;

from redmail import outlook

outlook.user_name = "example@hotmail.com"
outlook.password = "<MY PASSWORD>"

outlook.send(
    receivers=["you@example.com"],
    subject="An example",
    text="Hi, this is an example."
)