Task 发送带有附件的邮件

Task 发送带有附件的邮件,task,powershell-2.0,scheduler,Task,Powershell 2.0,Scheduler,我有一个ps1脚本,它根据任务调度器的事件有条件地运行。触发我的脚本的事件是另一个完成并写入。。。已成功完成对任务计划程序事件日志的访问。当这种情况发生时,我的脚本会向特定用户发送带有附加文件的HTML电子邮件。 问题是,当我手动运行它时,它可以工作,但当我设置条件时,它仍然发送电子邮件,但不附加文件!。。。这是我的密码: 所以,当它手动运行时,它可以与attachement一起正常工作。。。每一次!! 当我将它设置为通过任务调度器运行时,它可以发送电子邮件,但没有附件!直到今天,一切都很好 我

我有一个ps1脚本,它根据任务调度器的事件有条件地运行。触发我的脚本的事件是另一个完成并写入。。。已成功完成对任务计划程序事件日志的访问。当这种情况发生时,我的脚本会向特定用户发送带有附加文件的HTML电子邮件。 问题是,当我手动运行它时,它可以工作,但当我设置条件时,它仍然发送电子邮件,但不附加文件!。。。这是我的密码:

所以,当它手动运行时,它可以与attachement一起正常工作。。。每一次!! 当我将它设置为通过任务调度器运行时,它可以发送电子邮件,但没有附件!直到今天,一切都很好

我根本不知道如何调试或测试这个。。。任何帮助都将不胜感激

谢谢你!!!
B-

我自己相对来说是个新手,现在只在PowerShell工作了7个月左右,但我可能能帮上忙。虽然我通常使用“发送邮件至发件人”等方式,但您是否尝试过?方法发送电子邮件,我也使用了你偶尔展示的方法

通过查看您的代码并将其与我的代码进行比较,我注意到您缺少$attachment=New Object System.Net.Mail.attachment$emailAttach,$attachmentType。我还看到我在我的脚本中做了一个注释,您需要在发送电子邮件后包含$message.Dispose,否则将在相关附件上设置写锁


希望这有帮助

我也有同样的问题。以下两条班轮适合我,可以安排。更换gmail-user@gmail等以匹配您的帐户和凭据:

$credentials = new-object Management.Automation.PSCredential “gmail-user@gmail.com”, (“gmail-user's password” | ConvertTo-SecureString -AsPlainText -Force)

Send-MailMessage -From "gmail-user@gmail.com" -to "someone-else@gmail.com" -Subject "Some subject"
-Body "Some body" -SmtpServer "smtp.gmail.com" -port 587 -UseSsl
-Credential $credentials -Attachments "C:\an-attachment.txt"

您的代码中没有使用send mailmessage。在你的描述中,你说你是。这真的是您按照计划运行的脚本吗?执行计划任务的用户帐户是否具有访问附件的UNC路径的权限?
$credentials = new-object Management.Automation.PSCredential “gmail-user@gmail.com”, (“gmail-user's password” | ConvertTo-SecureString -AsPlainText -Force)

Send-MailMessage -From "gmail-user@gmail.com" -to "someone-else@gmail.com" -Subject "Some subject"
-Body "Some body" -SmtpServer "smtp.gmail.com" -port 587 -UseSsl
-Credential $credentials -Attachments "C:\an-attachment.txt"