新手。我有一个平面文件,我想要从PowerShell脚本(例如SQL:SELECT * FROM '[LOGFILEPATH]' WHERE Field1 LIKE '%LOGIN%'
)中对字符串进行SQL查询,并且如果查询返回任何行,PS脚本应该发送一封电子邮件。我将在稍后添加其他功能,但现在我需要知道如何将结果传递给PS并相应地发送电子邮件。谢谢。根据SQL结果从Powershell发送电子邮件
-2
A
回答
0
如果配置了DBMail,您可以从Sql Server本身发送邮件。程序sp_send_dbmail
可以将查询结果作为附件发送。像这样,
declare @mailTo varchar(64) = '[email protected]';
declare @subj varchar(64) = 'Subject for message';
declare @fName varchar(64) = concat('QueryResults-', convert(varchar(10), getdate(), 120), '.txt');
exec msdb.dbo.sp_send_dbmail
@recipients = @mailTo,
@subject = @subj,
@query = N'select top(10) column1, column2 from [MyDatabase].[dbo].[SomeTable];',
@attach_query_result_as_file = 1,
@query_attachment_filename = @fName;
这种方法的主要局限性在于,即使没有结果,它也会向您发送一封邮件。为了克服这个问题,可以考虑添加一个if
块。像这样,
declare @cnt int = 0;
set @cnt = (select count(column1) from table where <some conditions apply>);
if @cnt <> 0
begin
exec msdb.dbo.sp_send_dbmail ...
end
0
您可以使用Invoke-SqlCmd2检查表,然后用Send-MailMessage发送邮件。 如果你想自己动手写,而无需使用调用-SqlCmd2你可以做这样的事情:
$server = 'localhost\sqlexpress'
$database = 'MyDB'
$query = "SELECT * FROM '[LOGFILEPATH]' WHERE Field1 LIKE '%LOGIN%'"
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection
$dataset = New-Object -TypeName System.Data.DataSet
$connection.ConnectionString = "Server=$server;Database=$database;Trusted_Connection=True;"
$connection.Open()
$command = $connection.CreateCommand()
$command.CommandText = $query
$adapter = New-Object -TypeName System.Data.SqlClient.SqlDataAdapter $command
$rowCount = $adapter.Fill($dataset)
if ($rowCount -gt 0) {
Send-MailMessage ...
}
填写你到底需要发送-的MAILMESSAGE细节。
相关问题
- 1. 从两个选择结果发送sql电子邮件
- 2. 如果SQL查询结果为空,则发送电子邮件
- 3. PHP,MySQL:接收电子邮件,在数据库中自动搜索并根据结果发送电子邮件
- 4. 从sql server express发送电子邮件
- 5. 发送电子邮件从SQL Azure
- 6. 从sql sever发送电子邮件
- 7. PowerShell中发送电子邮件
- 8. PowerShell的电子邮件错误发送
- 9. PowerShell Outlook发送电子邮件
- 10. 发送电子邮件从
- 11. 发送电子邮件从数据库
- 12. 发送电子邮件“从数据库”
- 13. 从不同邮箱发送包含Powershell的电子邮件
- 14. PHP:从查询结果中发送批量电子邮件
- 15. 发送电子邮件根据日期从CSV提取变量
- 16. PHP电子邮件结合字段发送电子邮件
- 17. 使用PowerShell将SQL查询输出发送到电子邮件
- 18. PHP发送电子邮件多次发送电子邮件
- 19. 发送电子邮件到sql server 2008
- 20. SQL服务器:发送电子邮件
- 21. 从VBA电子邮件程序发送HTML电子邮件
- 22. 使用VBA根据数据点发送电子邮件
- 23. SQL Server:通过电子邮件发送动态SQL查询的结果
- 24. 从Outlook发送电子邮件至Powershell团队
- 25. 以条件发送电子邮件查询结果
- 26. ActionMailer - 根据日期条件在rails中发送电子邮件
- 27. 从数据库中发送电子邮件的电子邮件地址
- 28. 电子邮件不发送
- 29. django发送电子邮件
- 30. SpringMVC发送电子邮件
请参阅[如何提出一个好问题](https://stackoverflow.com/help/how-to-ask)帮助页面。到目前为止您尝试过什么,以及您遇到什么错误/问题? StackOverflow不是代码写入服务。理想情况下提供[最小,完整和可验证示例](https://stackoverflow.com/help/mcve) – gms0ulman