gpt4 book ai didi

python-3.x - 如何从 Azure 函数应用发送电子邮件?

转载 作者:行者123 更新时间:2023-12-02 17:27:17 39 4
gpt4 key购买 nike

我正在运行Azure function App(python语言),出于业务需求需要从function app发送电子邮件。

为此,我编写了一个 python 函数

from email.message import EmailMessage
import smtplib

def send_mail():
# message to be sent
msg = EmailMessage()
msg.set_content('Test content')

msg['Subject'] = 'Test'
msg['From'] = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8afeeff9fecae2e5fee7ebe3e6a4e9e5e7" rel="noreferrer noopener nofollow">[email protected]</a>"
msg['To'] = ["<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7307160007331b1c071e121a1f5d101c1e" rel="noreferrer noopener nofollow">[email protected]</a>"]

# creates SMTP session
s = smtplib.SMTP('smtp-mail.outlook.com', 587)
s.ehlo()

# start TLS for security
s.starttls()
# Authentication
s.login("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e397869097a38b8c978e828a8fcd808c8e" rel="noreferrer noopener nofollow">[email protected]</a>", "password-to-login")

# sending the mail
s.send_message(msg)

# terminating the session
s.quit()

return

以上代码块在本地计算机上运行良好。如果我将相同的代码移至 Azure Function App,它将无法正常工作。

如何使其在 Azure 函数应用上运行?

如何在 Azure Function App 中从 Gmail 发送电子邮件?

最佳答案

由于公共(public)云服务 IP 的弹性性质,不支持直接从 Azure 计算服务中托管的电子邮件服务器向外部域(例如 Outlook.com、gmail.com 等)发送出站电子邮件滥用的可能性。因此,Azure 计算 IP 地址 block 将添加到公共(public) block 列表(例如 Spamhaus PBL)。此政策没有异常(exception)。

由于我们不支持从我们的平台运行 smtp 服务器,这不会影响我们。

目前在 Azure Web App 上使用 EMAIL 功能的唯一方法是通过 SMTP 中继。 SendGrid 等第三方服务提供此类服务。

在 Azure Web Apps 架构中,实际的 Web Apps 位于公共(public)前端后面,这些前端由该数据中心上托管的所有站点共享。

该数据中心上托管的站点之一可能正在发送垃圾邮件,并且该 IP 地址可能会被邮件服务器列入黑名单。因此,从该地址发送的电子邮件将被邮件服务器拒绝或视为垃圾邮件。VM 或云服务也存在此限制。 Azure 使用 IP 地址池,并且这些地址可以重复使用。这意味着您可能会获得一个已列入黑名单的 IP 地址,因为之前有人从该地址发送过垃圾邮件,因此您的电子邮件将被邮件服务器拒绝或视为垃圾邮件。

这是云中的常见场景,通常建议使用外部邮件服务提供商(例如 SendGrid)进行消息传递。SendGrid 相关文章:

如何使用 SendGrid 和 Azure 发送电子邮件:https://azure.microsoft.com/en-in/documentation/articles/sendgrid-dotnet-how-to-send-email/

关于python-3.x - 如何从 Azure 函数应用发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58246398/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com