sql - SQL Mail 仅向查询中指定的用户发送电子邮件
问题描述
我有大约 1 个月的 SQL 经验,我想根据查询条件向客户发送电子邮件。我面临的挑战是电子邮件应该只发送给查询中显示的用户电子邮件。下面是一个数据示例。我不知道我应该怎么做才能根据查询设置自动电子邮件。任何帮助是极大的赞赏!
我的查询看起来像这样,
select *
from [Tbl]
where [Date Certificate is Expiring]
Between getdate()-372 AND getdate()-371
输出:
用户名 | 电子邮件 | 日期证书到期
注意:我无权访问 Visual Basic、SSRS、SSIS 或数据库引擎和 dbMail 以外的任何其他工具
解决方案
请先创建 DB 邮件配置文件,然后将其放入以下查询:
DECLARE @MailRecipients NVARCHAR(MAX);
SELECT @MailRecipients = STUFF((
SELECT DISTINCT ';' + t.Email
FROM [Tbl] t
WHERE t.[Date Certificate is Expiring] BETWEEN GETDATE()-372 AND GETDATE()-371
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)'),1,1,'')
;
IF COALESCE(@MailRecipients,'') <> ''
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name = ..., -- <-- you have to create DBMailProfile first
@recipients = @MailRecipients,
@subject = 'Email about expiring stuff',
@body_format = 'HTML',
@body = 'Hi there, your something is expired',
@importance = 'Normal'
END
推荐阅读
- python - 当我在 Python 的另一个函数中使用它时,我可以隐藏一些函数的返回值吗?
- javascript - Node.js 可写流完成未在类中触发
- python-3.x - 如何使用 Python 显示 Flash 文件 (swf)
- python - 角色在 pygame 中卡住/冻结
- android - NestedScrollView 内的 Androidx Recyclerview
- c++ - 创建包含 openCV 的自定义静态库
- javascript - 如何修剪输入字段中的空间?
- python - 如何在pymunk中更改形状的颜色?
- javascript - 如何使用动态 JSON 中的键来创建 javascript 数组?
- php - 使用php读取数据时如何显示php进度条