You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VB.NET将SQL Server指定数据发送至Outlook邮件?新手求助

当然可行啦!作为SQL新手也不用慌,咱们用SQL Server自带的**数据库邮件(Database Mail)**就能搞定,步骤我给你拆得明明白白:

第一步:先配置数据库邮件(仅需设置一次)

这是基础准备,后续发送邮件都靠它:

  • 打开SQL Server Management Studio(SSMS),连接到你的数据库实例
  • 展开左侧的「管理」节点,右键点击「数据库邮件」,选择「配置数据库邮件」
  • 跟着向导一步步走:先启用数据库邮件功能,然后添加一个邮件账户(可以用你的个人邮箱或企业邮箱,记得提前开启邮箱的SMTP权限,比如QQ邮箱要开启POP3/SMTP并获取授权码)
  • 创建一个邮件配置文件,把刚才添加的账户加进去,设为默认配置文件
第二步:写SQL查询获取要发送的数据

先把你需要发送的筛选好,比如要发送TodaySchedule的全量数据,或者RegisteredSchedule里指定日期的记录,示例代码如下:

-- 示例1:获取TodaySchedule的所有日程记录
SELECT 姓名, 性别, ScheduleDate, 负责人
FROM TodaySchedule

-- 示例2:如果要筛选RegisteredSchedule中指定日期的记录
SELECT 姓名, 性别, ScheduleDate, 负责人
FROM RegisteredSchedule
WHERE ScheduleDate = '2024-05-20' -- 替换成你需要的日期

如果想让邮件里的数据更美观,建议转成HTML表格格式,新手可以直接用下面的代码生成HTML内容:

DECLARE @htmlBody NVARCHAR(MAX)

-- 生成HTML表格的头部
SET @htmlBody = N'<html><body><h2>日程数据汇总</h2><table border="1" cellpadding="5"><tr>
<th>姓名</th><th>性别</th><th>日程日期</th><th>负责人</th></tr>'

-- 拼接数据行
SELECT @htmlBody = @htmlBody + N'<tr>
<td>' + 姓名 + N'</td>
<td>' + 性别 + N'</td>
<td>' + CONVERT(NVARCHAR(20), ScheduleDate, 23) + N'</td>
<td>' + 负责人 + N'</td>
</tr>'
FROM TodaySchedule -- 这里可以替换成你的目标表或查询语句

-- 闭合HTML标签
SET @htmlBody = @htmlBody + N'</table></body></html>'
第三步:执行SQL命令发送邮件

用SQL Server自带的sp_send_dbmail存储过程就能直接发邮件,把刚才的配置和数据填进去就行:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = '你的邮件配置文件名', -- 第一步里设置的配置文件名称
    @recipients = '收件人1@xxx.com,收件人2@xxx.com', -- 多个收件人用逗号分隔
    @subject = '今日日程数据通知',
    @body = @htmlBody, -- 刚才生成的HTML表格内容
    @body_format = 'HTML'; -- 指定邮件为HTML格式,表格才能正常显示
新手额外提醒
  • 测试阶段先给自己发一封邮件,确认数据格式和内容都正确后再发给其他人
  • 如果需要定时自动发送(比如每天早上发当日日程),可以创建SQL Server代理作业,把上面的查询和发送命令加进去,设置好执行时间即可
  • 要是遇到权限报错,检查一下msdb数据库里的用户角色权限,确保SQL Server服务账号有发送邮件的权限

内容的提问来源于stack exchange,提问作者Bonito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:34:18