Currenly,我正在设法在SQL服务器中设置powershell作业,以表格格式发送数据库邮件。这是我的剧本:
$SMTPProperties = @{
To = "abc@abc.com.hk","test@test.com"
Cc = "xyz@xyz.com"
From = "test@abc.com.hk"
Subject = "SQL Report Status"
SMTPServer = "192.168.xx.xx"
}
$server = "192.168.xx.xx"
$database = "DBName"
$username = "abc"
$password = "abc124"
$query = "select top 10* from testing"
function ExecuteSqlQuery ($Server, $Database, $query) {
$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';User ID='$username'; Password='$password';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
$Command.CommandText = $query
$Reader = $Command.ExecuteReader()
$Datatable = New-Object System.Data.DataTable
$Datatable.Load($Reader)
$Connection.Close()
return $Datatable
}
$resultsDataTable = New-Object System.Data.DataTable
$resultsDataTable = ExecuteSqlQuery $Server $Database $query
Send-MailMessage @SMTPProperties -Body $query -BodyAsHTML | Format-Table
有几个问题:
1 即可。在@SMTPProperties
中,如何向多个收件人发送邮件?的解决
的 2 即可。该脚本有效,但在收到的电子邮件的内容中,它只是返回
查询文字 (select top 10* from testing)
。它不是
查询结果。
3 即可。我的脚本是否正确,可以在电子邮件中输出HTML表格
内容?如果没有,我该怎么改呢?
的 4 即可。如何在上面的脚本中不提供UID
和Password
来运行上面。
谢谢。
答案 0 :(得分:0)
对于更多收件人,您可以使用抄送字段
我用它来发送我的Powershell脚本的邮件。
Send-MailMessage `
-Credential $anonCredentials `
-From FromMailAddress@Domain.com `
-To MainMailAddress@Domain.com `
-Cc "FirstRecipient@Domain.com","SecondRecipient@Domain.om","ThirdRecipient@Domain.com" `
-Subject "Enter your subject" -Body "This is an automated message from the server with some data" `
-SmtpServer 192.168.x.x `
-Attachments "C:\ThedataIwanttosend.rar"
如果您尝试在html文件或其他内容中导出报告,然后将其邮寄给必须接收报告的人?这个解决方案适合你吗?如果您运行脚本,您有任何结果吗?
您正在为文本设置$ Query,然后您永远不会使用新内容进行更新。
你的-body将$ query作为文本,因此将该文本作为邮件发送是正确的。
Send-MailMessage @SMTPProperties -Body $query -BodyAsHTML | Format-Table
您是否从正在使用的功能中获取了正确的数据?如果是,则必须将这些结果放在变量中并将该变量写为正文。
现在你有:
$query = "select top 10* from testing"
Send-MailMessage @SMTPProperties -Body $query -BodyAsHTML | Format-Table
所以你收到的邮件会从$ query变量获取-body数据,这是你在$ query变量上设置的文本。
如果您想在该邮件正文中使用其他内容,则必须将其保存到$ query变量中,或者使用结果创建一个新变量,然后将其添加到-Body。
希望它有所帮助。