首页 > 解决方案 > 通过电子邮件发送 Azure Blob 存储上的文件

问题描述

每周一,定时器触发的函数应用都会向 Azure blob 存储添加一个文件。我想知道是否有办法通过电子邮件将其作为附件发送给人们。发件人电子邮件将是我的组织的,而不是 GMail 或 Outlook 或任何东西。收件人也将来自我的组织。

所有 Function App 代码都是用 Python 编写的,因此它是一个 Linux 环境,并且使用的是消费计划。我知道我无法进行 Sendgrid 绑定,因为它不支持 Python(在撰写本文时)。

我浏览过有关使用 MIMEMultipart 发送电子邮件的文章,但它所寻求的“附件”位于本地。我感兴趣的文件位于 Azure 存储帐户中。

我环顾四周,但找不到任何支持它的东西。由于我在 Python 上执行此操作,因此我更加不知所措。

拜托,你能帮帮我吗?

长话短说:我在 Azure 存储帐户上有一个文件,并且使用 Python,我希望将其通过电子邮件发送给人们。

标签: python-3.xazureazure-functionsazure-blob-storageemail-attachments

解决方案


可以使用 blob 触发器创建新的 Azure 函数。

这是一个关于它的示例:

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")

    img_data = myblob.read()

    #Logic to send the email in here

    try:
    except Exception as e:
        print('Error:')
        print(e)

来源:https ://github.com/yokawasa/azure-functions-python-samples/tree/master/v2functions/blob-trigger-cosmosdb-out-binding

另一种选择,我认为更简单,只需将逻辑应用与 Azure 存储连接器和您最喜欢的工具一起使用来发送电子邮件(Sendgrid、outlook、gmail 等)

https://docs.microsoft.com/bs-latn-ba/azure///////connectors/connectors-create-api-azureblobstorage


推荐阅读