当前位置: 首页 > 知识库问答 >
问题:

将Azure Blob从Azure Function附加到PowerShell中的电子邮件

单于楚
2023-03-14

我有一个用PowerShell编写的Azure函数,其输入和输出绑定为相同的Blob存储,用于存储输入和输出csv文件。我能够从带有blob附件的函数发送电子邮件,但电子邮件具有文件类型而不是csv的附加文件。因此,我必须下载并手动添加.csv扩展名。如何发送附件中带有扩展名的输出csv文件?我的电子邮件代码如下:

# Send Email using SendGrid with file attachment
$username ="Username"
$password = ConvertTo-SecureString "Password" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, 
$password
$SMTPServer = "smtp.sendgrid.net"
$emailFrom = "No-reply@azureadmin.com"
[string[]]$emailTo = "some-email"
$subject = "Sending sample email using SendGrid Azure and PowerShell"
$body = "This is sample email sent using Sendgrid account create on Microsoft 
Azure. The script written is easy to use."
$attachment = $outputBlob
Send-MailMessage -smtpServer $SMTPServer -Credential $credential -Usessl - 
Port 587 -From $emailFrom -To $emailTo -Subject $subject -Body $body - 
BodyAsHtml -Attachments $attachment

我用相同的代码创建了输出文件,但是我不确定如何将它附加到电子邮件中。

outputBlob是一个名为outputfile.csv的csv文件,它存储在与inputfile相同的容器中。我在这个脚本中创建了这个输出文件。我的容器名是“mycsvcontainer ”,我的blob在Azure函数绑定中的路径是“mycsvcontainer/output file . CSV”。blob的名称是outputBlob,我在上面的脚本中使用了它。类似的还有inputBlob的名字。

共有1个答案

白子昂
2023-03-14
        $StorageAccountName = 'mystorageaccount'
        $StorageAccountKey = "storageaccountkey"
        $StorageContext = New-AzureStorageContext $StorageAccountName -StorageAccountKey $StorageAccountKey
        $FileName = 'filename'
        $ContainerName  = 'mycontainer'

        #Get attachment from blob storage
        $a = Get-AzureStorageBlobContent -Container $ContainerName -Blob $FileName -Context $StorageContext
        $attachment = $a.Name

        $MyCredential = "SendEMail" 
        $EmailBody = "Test"
        $Body = $EmailBody.replace("|","`n`r")
        $subject = "Tets"
        $userid= "Test@test.com"
        $emailTo = "emailid@emaildomain.com"

        #Get the PowerShell credential 
        $Cred = Get-AutomationPSCredential -Name $MyCredential 


        Send-MailMessage `
        -To $emailTo `
        -Subject $subject `
        -Body $Body `
        -UseSsl `
        -Port 587 `
        -SmtpServer 'smtp.sendgrid.net' `
        -Attachments $attachment `
        -From $userid `
        -Credential $Cred `
 类似资料:
  • 问题内容: 有没有办法将图像附加到用PHP创建的html格式的电子邮件中? 我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。 问题答案: 尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。 您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属

  • 问题内容: 我想发送带有PDF附件的电子邮件。我创建了PDF文件,然后执行了以下操作,但我认为这是错误的: 在发送电子邮件之前,我可以看到附件,但是当我发送电子邮件时,它的发送没有附件,这是因为我没有正确附加文件。 问题答案: 您错了。使用代替。

  • 我试图发送一个附加的json文件到电子邮件,但是由于某种原因,在发送/创建电子邮件时,json文件没有被附加。注意:我不希望用户选择要附加的文件,我希望它被固定/自动设置。 我有以下权限在我的 还有密码 编辑1:在做了@piyushpk建议的建议更改后,我现在在选择电子邮件应用程序时会出现以下错误: 然而,根据我的打印声明,文件大小只有69KB。。。

  • 我正在尝试发送一封带有附件的确认电子邮件,电子邮件地址为strapi provider email NodeEmailer。该插件显然支持附件,但我不知道我应该在strapi后端的何处添加这些附件。有人知道如何将附件添加到通过strapi NodeEmailer发送的电子邮件中吗?

  • 我已经成功地让我的nodejs应用程序IMAP“附加”一封新邮件到Gmail,并带有自定义日期/时间。一切都很好。但是,如何使Gmail将其视为实际的新传入电子邮件?(需要根据现有过滤器进行排序,如果需要,可以推送到垃圾邮件等)。基本上,Gmail对新传入的电子邮件执行的所有功能。是否可以在新创建的电子邮件上引发任何此类事件,也许是使用其UID的内容?Gmail 是否通过 IMAP 支持此类功能?

  • 我使用以下处理器获取电子邮件的第一个附件并将其上传到ftp服务器。 路由配置 邮件处理器 这通常有效,但对于“大”附件来说,它实际上需要永远。(仅 5 MB 附件半小时) 原木 我还尝试像这样转换附件: 但这给了我以下信息: 使用Filezilla上传到ftp服务器非常有效。另外,当我在另一条路径上使用camel-ftp时(由文件上传触发),上传到ftp服务器的速度非常快。所以我有一种感觉,是依恋