Python 3.x 通过电子邮件发送Azure blob存储上的文件

Python 3.x 通过电子邮件发送Azure blob存储上的文件,python-3.x,azure,azure-functions,azure-storage-blobs,email-attachments,Python 3.x,Azure,Azure Functions,Azure Storage Blobs,Email Attachments,每周一,一个由计时器触发的函数应用程序会将一个文件添加到Azure blob存储中。我想知道是否有办法通过电子邮件将其作为附件发送给人们。发件人的电子邮件将是我所在组织的,而不是GMail、Outlook或其他任何东西。收件人也将来自我的组织 所有函数应用程序代码都是用Python编写的,因此它是一个Linux环境,并且使用一个消费计划。我知道我不能进行Sendgrid out绑定,因为它不支持Python(在撰写本文时) 我读过一些关于使用MIMEMultipart发送电子邮件的文章,但它寻找

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

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

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

我环顾四周,但找不到任何支持它的东西。因为我是在Python上这样做的,所以我更加不知所措

拜托,你能帮我吗


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

您可以使用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)
资料来源:

另一个选择,我认为更简单,只需使用带有Azure Storage Connector的逻辑应用程序和您最喜欢的工具(Sendgrid、outlook、gmail等)即可发送电子邮件


myblob将保存blob的内容。检查此项:并将part.set_有效负载(file.read())更改为此part.set_有效负载(myblob)