利用SQLServer数据库发送邮件

汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql

转自:http://www.cnblogs.com/dunitian/p/6022826.html

这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候。等等,,,

先回顾一下以前用C#发邮件的内容:http://www.cnblogs.com/dunitian/p/5682930.html

可能有些人看不太懂,这个是简单演示:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/0.知识拓展/01.网络编程/3.System.Net.Mail/3.3.SmtpClient/EmailHelper.cs

 

步入正轨:

在配置之前请先把邮件的POP3之类的设置一下:

简图:

 

其他邮箱都是类似的,可以参考这个:http://www.cnblogs.com/dunitian/p/5682930.html#god

图形化演示:

 

配置名字随意取,可以用项目名。显示名称建议用版本号+服务器ip,这样出问题可以定位跟踪

 

 

微软图形化的东西一般有个特点,一路下一步基本上能解决所有基础问题

勾选一下(貌似不勾选也没事)

测试一下:

发一封邮件到“我为NET狂”的官方邮件去

去看看:

命令演示:(不需要记,你又不是DBA,会用即可)

脚本: 

--开启发邮件功能
exec sp_configure 'show advanced options',1
reconfigure with override 
go
exec sp_configure 'database mail xps',1
reconfigure with override 
go
 
--创建邮件帐户信息
exec msdb.dbo.sysmail_add_account_sp
  @account_name ='dunitian1',                   -- 邮件帐户名称   
  @email_address ='xxxx@yeah.net',              -- 发件人邮件地址    
  @display_name ='SQLServer2014_192.168.1.20',  -- 发件人姓名 
  @MAILSERVER_NAME = 'smtp.yeah.net',           -- 邮件服务器地址
  @PORT =25,                                    -- 邮件服务器端口 
  @USERNAME = 'xxxx@yeah.net',                  -- 用户名 
  @PASSWORD = '邮件密码'                            -- 密码  
GO
--数据库配置文件
exec msdb.dbo.sysmail_add_profile_sp
  @profile_name = 'SQLServer_DotNetCrazy1',     -- 配置名称 
  @description = '数据库邮件配置文件'            -- 配置描述
go
 
--用户和邮件配置文件相关联
exec msdb.dbo.sysmail_add_profileaccount_sp
  @profile_name = 'SQLServer_DotNetCrazy1',     -- 配置名称
  @account_name = 'dunitian1',                  -- 邮件帐户名称    
  @sequence_number = 1                          -- account 在 profile 中顺序(默认是1)
go
 

 

 

发送邮件脚本:

exec msdb.dbo.sp_send_dbmail
@profile_name = 'SQLServer_DotNetCrazy1',   --配置名称
@recipients = 'dotnetcrazy@foxmail.com',    --收件名称
@body_format = 'HTML',                      --内容格式
@subject = '文章标题',
@body = '邮件内容'

 

结果:20的ip也发过来了

 

--相关查询
--select * from msdb.dbo.sysmail_allitems
--select * from msdb.dbo.sysmail_faileditems --失败状态的消息
--select * from msdb.dbo.sysmail_unsentitems --看未发送的消息
--select * from msdb.dbo.sysmail_sentitems --查看已发送的消息

--select * from msdb.dbo.sysmail_event_log --记录日记

 

 

参考文章:

http://www.cnblogs.com/junqingday/p/4187161.html

posted @ 2017-08-10 15:45  lcawen  阅读(201)  评论(0)    收藏  举报