Azure functions 我无法从python(Azure函数)发送电子邮件(smtp.office365.com/587)

Azure functions 我无法从python(Azure函数)发送电子邮件(smtp.office365.com/587),azure-functions,Azure Functions,我尝试从Azure功能发送电子邮件。 我可以从本地PC发送电子邮件 import datetime import logging, logging.handlers import azure.functions as func smtpHandler = logging.handlers.SMTPHandler(mailhost=('smtp.office365.com', 587), fromaddr='mailsend@comp

我尝试从Azure功能发送电子邮件。 我可以从本地PC发送电子邮件

import datetime
import logging, logging.handlers

import azure.functions as func

smtpHandler = logging.handlers.SMTPHandler(mailhost=('smtp.office365.com', 587),
                              fromaddr='mailsend@company.com',
                              toaddrs=['myemail@company.com'],
                              subject='---- log ------',
                              credentials=("mailsend@company.com", "dfgSD2sd4401ssd"),
                              secure=(), timeout=180)
        smtpHandler.setLevel(logging.INFO)

        logging.basicConfig(
            level=logging.INFO, 
            format="[%(asctime)s] [%(levelname)s]  %(message)s",
            handlers=[smtpHandler]
        )

def main(mytimer: func.TimerRequest) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()

    if mytimer.past_due:
        logging.info('The timer is past due!')

    logging.info('Python timer trigger function ran at %s', utc_timestamp)

PS:我们已经有include:spf.protection.outlook.com-所有DNS记录

从现在开始,使用电子邮件功能的唯一方法是通过SMTP中继。第三方服务(如SendGrid提供此类服务)

在Azure Web应用程序体系结构中,实际的Web应用程序位于公共前端之后,这些前端由该数据中心上托管的所有站点共享

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

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


我不想使用第三方服务。我为这项服务付钱,我希望得到全额服务。事实证明,如果没有第三方服务,Azure服务无法提供所有需求。