Anb*_*yan 3 email azure smtplib python-3.x azure-functions
我运行了 Azure 函数应用程序(python 语言),业务需求需要从函数应用程序发送电子邮件。
为此,我写了一个 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'] = "test@hotmail.com"
msg['To'] = ["test@hotmail.com"]
# creates SMTP session
s = smtplib.SMTP('smtp-mail.outlook.com', 587)
s.ehlo()
# start TLS for security
s.starttls()
# Authentication
s.login("test@hotmail.com", "password-to-login")
# sending the mail
s.send_message(msg)
# terminating the session
s.quit()
return
Run Code Online (Sandbox Code Playgroud)
以上代码块在本地机器上工作正常。如果我将相同的代码移动到 Azure Function App,它就不起作用。
如何使其在 Azure 函数应用上运行?
如何在 Azure Function App 中从Gmail发送电子邮件?
小智 12
由于公共云服务 IP 的弹性性质和潜在虐待。因此,Azure 计算 IP 地址块被添加到公共块列表(例如 Spamhaus PBL)。这项政策没有例外。
由于我们不支持从我们的平台运行和 smtp 服务器,这应该不会影响我们。
目前在 Azure Web App 上使用 EMAIL 功能的唯一方法是通过 SMTP 中继。SendGrid 等第三方服务提供这些类型的服务。
在 Azure Web Apps 体系结构中,实际的 Web 应用程序位于公共前端,这些前端由该数据中心上托管的所有站点共享。
有可能托管在该数据中心的站点之一正在发送垃圾邮件,这可能会使 IP 地址被邮件服务器列入黑名单。因此,从该地址发送的电子邮件将被邮件服务器拒绝或视为垃圾邮件。在 VM 或云服务的情况下也存在此限制。Azure 使用 IP 地址池,并且这些地址会被重复使用。这意味着您可以获得一个已经被列入黑名单的 IP 地址,因为之前有人从该地址发送垃圾邮件,因此您的电子邮件将被邮件服务器拒绝或视为垃圾邮件。
这是云中的常见场景,通常建议使用外部邮件服务提供商(如 SendGrid)进行消息传递。SendGrid 相关文章:
如何使用 SendGrid 和 Azure 发送电子邮件:https ://azure.microsoft.com/en-in/documentation/articles/sendgrid-dotnet-how-to-send-email/
| 归档时间: |
|
| 查看次数: |
17252 次 |
| 最近记录: |