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

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

先回顾一下以前用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 --记录日记

-- select * from sysmail_mailitems

参考文章:

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

exec sp_configure 'show advanced options',1
RECONFIGURE WITH OVERRIDE
go
exec sp_configure 'database mail xps',1
RECONFIGURE WITH OVERRIDE
go --2.创建邮件帐户信息
EXEC msdb..Sysmail_add_account_sp
@ACCOUNT_NAME ='OCTMamiETL',-- 邮件帐户名称
@EMAIL_ADDRESS ='OCTMamiETL@163.com',-- 发件人邮件地址
@DISPLAY_NAME ='系统管理员',-- 发件人姓名
@REPLYTO_ADDRESS =NULL,
@DESCRIPTION = NULL,
@MAILSERVER_NAME = 'SMTP.163.COM',-- 邮件服务器地址
@MAILSERVER_TYPE = 'SMTP',-- 邮件协议
@PORT =25,-- 邮件服务器端口
@USERNAME = 'OCTMamiETL@163.com',-- 用户名
@PASSWORD = 'ABC123',-- 密码
@USE_DEFAULT_CREDENTIALS =0,
@ENABLE_SSL =0,
@ACCOUNT_ID = NULL GO --3.数据库配置文件
IF EXISTS(SELECT name
FROM msdb..sysmail_profile
WHERE name = N'ETLErrorProfileLog')
BEGIN
EXEC msdb..Sysmail_delete_profile_sp @profile_name='ETLErrorProfileLog'
END EXEC msdb..Sysmail_add_profile_sp
@profile_name = 'ETLErrorProfileLog',-- profile 名称
@description = '数据库邮件配置文件',-- profile 描述
@profile_id = NULL go --4.用户和邮件配置文件相关联
EXEC msdb..Sysmail_add_profileaccount_sp
@profile_name = 'ETLErrorProfileLog',-- profile 名称
@account_name = 'OCTMamiETL',-- account 名称
@sequence_number = 1 -- account 在 profile 中顺序
--5.发送文本测试邮件
EXEC msdb..Sp_send_dbmail
@profile_name='ETLErrorProfileLog',
@recipients='OCTMamiETL@163.com',--收件人
@subject='Test title this is test ',
@body=N'z中文邮件内容 中文邮件内容' go -----------------------------------------------------------------------------------
/*
功能说明:启用警报系统里面的邮件配置
参数说明: xp_instance_regwrite 修改注册表
*/
EXEC msdb.dbo.Sp_set_sqlagent_properties @email_save_in_sent_folder=1 EXEC master.dbo.Sp_mssetalertinfo @pagersendsubjectonly = 0 --启用警报系统 【在通知消息中包含电子邮件的正文】 EXEC master.dbo.Xp_instance_regread
N'HKEY_LOCAL_MACHINE',--启用警报系统 【启用邮件配置文件】
N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
N'DatabaseMailProfile' ---邮件系统【选择数据库邮件】 EXEC master.dbo.Xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
N'UseDatabaseMail',
N'REG_DWORD', EXEC master.dbo.Xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',--启用警报系统 【启用邮件配置文件】
N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
N'DatabaseMailProfile',---邮件系统【选择数据库邮件】
N'REG_SZ',
'ETLErrorProfileLog' ---邮件配置文件【邮件配置里面的SQLMailProfile】 -----------------------------------------------------------------------------------
DECLARE @Sys_OperatorsName VARCHAR(100) SET @Sys_OperatorsName='BSMicheal' IF EXISTS (SELECT name
FROM msdb.dbo.sysoperators
WHERE name = @Sys_OperatorsName)
BEGIN
EXEC msdb..Sp_delete_operator @name = @Sys_OperatorsName -- 操作员
END EXEC msdb.dbo.Sp_add_operator
@name = @Sys_OperatorsName,
@enabled = 1,
@weekday_pager_start_time = 90000,
@weekday_pager_end_time = 180000,
@saturday_pager_start_time = 90000,
@saturday_pager_end_time = 180000,
@sunday_pager_start_time = 90000,
@sunday_pager_end_time = 180000,
@pager_days = 127,
@email_address = 'OCTMamiETL@163.com',-----仅可以对 SQL Mail 使用电子邮件别名。必须对数据库邮件使用电子邮件地址。
@pager_address = N'',
@netsend_address = N'' /*
功能说明: 在Job中添加操作员的操作
参数说明: @notify_level_email指定何时将该作业的项放入 Microsoft Windows 应用程序日志。
eventlog_level 的数据类型为 int 【0 从不 1 成功时 2 失败时 3 始终】
修改说明:Create by LY on 2011-010-10
*/
IF EXISTS (SELECT 1
FROM msdb.dbo.sysjobs
WHERE name = 'dad')
BEGIN
EXEC msdb.dbo.Sp_update_job
@job_name = 'dad',---对应的作业名称
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = 'BSMicheal' ---对应的操作员
END;

利用SQLServer数据库发送邮件的更多相关文章

  1. Sqlserver数据库发送邮件

    目录 1. Sqlserver数据库发送邮件 1.1. 概念了解 1.2. 配置 1.3. 测试发送邮件 1.3.1. 代码测试 1.3.2. 工具测试 1.4. 查看邮件日志 1. Sqlserve ...

  2. JSON序列化及利用SqlServer系统存储过程sp_send_dbmail发送邮件(一)

    JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) ...

  3. SQLSERVER 数据库性能的的基本

    SQLSERVER 数据库性能的基本 很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据 ...

  4. SQLSERVER数据库表各种同步技术

    1 --SQLSERVER数据库表各种同步技术 减少SQLServer中每次的同步数据量 2 3 --说到数据库,我就不由地想到同步数据,如何尽可能地减少每次的同步数据量,以此来提高同步效率,降低对网 ...

  5. 查询Sqlserver数据库死锁的一个存储过程(转)

        使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉.利用sp_who ...

  6. xp下Oracle数据库导入SQLServer数据库数据

    Oracle数据库利用ODBC数据源.PLSQL Developer导入SQLServer数据库数据 操作: 建立数据源:控制面板→管理工具→数据源 (ODBC) 打开,界面如下: 点击添加,界面如下 ...

  7. SQLSERVER 数据库性能的的基本 MVC + EF + Bootstrap 2 权限管理

    SQLSERVER 数据库性能的基本 很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据 ...

  8. SQLServer数据库镜像配置

    目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...

  9. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

随机推荐

  1. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  2. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  3. ABP文档 - Javascript Api

    文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...

  4. 按需加载.js .css文件

    首先,理解按需加载当你需要用到某个js里面的函数什么鬼,或者某个css里的样式的时候你才开始加载这个文件. 然后是怎样实现的,简单来说就是在js中动态的createElem<script> ...

  5. 谈谈一些有趣的CSS题目(九)-- 巧妙的实现 CSS 斜线

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  6. .net 大型分布式电子商务架构说明

    .net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便 ...

  7. 为IEnumerable<T>添加RemoveAll<IEnumerable<T>>扩展方法--高性能篇

    最近写代码,遇到一个问题,微软基于List<T>自带的方法是public bool Remove(T item);,可是有时候我们可能会用到诸如RemoveAll<IEnumerab ...

  8. PHP之时间和日期函数

    // 时间日期函数 Time <?php date_default_timezone_set('UTC'); // 获取当前时间的时间戳 $time0 = mktime(); $time1 = ...

  9. ABAP实现屏幕自己刷新和跳转功能

    ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_c ...

  10. 在MySQL数据库中创建一个完整的表

    1.登陆成功后,首先进入某一个数据库 (不是指数据库服务器) use t1; //t1是数据库名 如图所示: 2.在此数据库中建立数据库表 2.1 先建立表结构(可以理解为表的列名,也就是字段名)在实 ...