• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > sqlserver2008自动发送邮件

sqlserver2008自动发送邮件

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sqlserver2008下载,sqlserver2008,sqlserver2008官网,sqlserver2008安装,sqlserver2008密钥等相关知识,希望本文的分享对您有所帮助

这两天都在搞这个东西,从开始的一点不懂,到现在自己可以独立的完成这个功能!在这个过程中,CSDN的好多牛人都给了我很大的帮助,在此表示十二分的感谢!写这篇文章,一是为了巩固一下,二嘛我也很希望我写的这点小东西能帮助遇到同样问题的朋友们!当然这里有一部分是从网上的摘录的
实现一个类似于注册平台的功能:比如注册了一个用户,就会向注册邮箱里发送一封邮件。首先是要搭建一个自动发送邮件的平台,这个用sql server 2008(sql server 2005也有)的database mail就能很方便的实现。这个完成了以后就能够发送简单的邮件了,但是这样在应用中往往是不够,我们还要需要建一个job来实现自动发送的功能。
database mail的构建有两种方法,一是用configure database mail,另外一种是用sql语句完成。
这两种方法中的服务器名字,我刚开始以为是随便起一个就可以的,(以为sql server的database mail会自动把这个服务器名申请为一个可用的smtp服务器)后来貌似不是的。这里好像必须要是一个存在并且可用的smtp服务器名
如果想要删除建立好的profile和account可以用如下语句

完成了database mail的搭建。下面我们就要开始完善自动发送邮件的功能。
我们要实现发送邮件的格式是:
尊敬的×××:---------------------------------------------titleName
感谢您的注册,你的用户名是××,密码是××--------------------------object
你的满意是我们最大的动力。----------------------------------------------------Conclusion
某某公司             ----------------------------------------------------------Inscribe
首先我们可以建两个表:一个是AutoSendEmail记录用户ID和Email的信息;一个是EmailText,一个static table,里面存储的是我们要发送的邮件的格式。
AutoSendEmail的主要字段有UserID,EmailAddress,EmailTextID(EmailText的一个外键)。这里的UserID对应的是一个User表,里面存有用户的登录名及登录密码。
EmailText的主要字段有EmailTextID,Subject(主题),titleName(称呼),object(内容),Conclusion(结束语),Inscribe(落款)。可能看到这里,有人会认为EmailText表没必要设计的这么麻烦。有EmailTextID,Subject和一个body就够了,确实,但是这样的话,内容中的排版格式比较麻烦。这样设计一是为了格式方便,一个是为了和发送其他邮件格式统一。插入一行数据到EmailText表中
insert into EmailText (EmailTextID,Subject,TitleName,Object,Conclusion,Inscribe) values(1,'注册成功','尊敬的<UserName>:','
 感谢您申请注册某某公司会员!  你的注册帐号为<LoginName>,密码为<Password>,请妥善保管您的密码!','
 感谢您对我们公司的支持!如果任何意见或建议,欢迎来电咨询:123-456789。请不要回复此邮件!',' 某某公司')
 这样,用job每次遍历AutoSendEmail,从中得到UserID和EmailTextID,然后根据UserID可以得到相应的登录名和登录密码。同时根据EmailTextID,取出里面的titleName(称呼),object(内容),Conclusion(结束语),Inscribe(落款)四个字段,用得到的登录名和登录密码去替换<UserName> ,<LoginName>,<Password>这样就可以拼凑成一封邮件的完整body。
为此,先建立一个procedure

上面代码用了一个sql里的替换函数replace,该函数的用法是
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法 REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
参数 'string_expression1' 待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。
'string_expression2' 待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。
'string_expression3' 替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
返回类型
如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
  msdb.dbo.sp_send_dbmail存储过程是用于执行发送邮件的,返回值为0或是1。0代表发送成功,1为发送失败
邮件的格式是用HTML形式显示
有了这个存储过程,那么只要用个建个job就可以了。job主要是为了实现某些需要数据库自动处理的功能。
job里的command输入如下代码:

While ( @@Fetch

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sqlserver巧用row_number和partition by分组取top数据
  • sqlserver 存储过程中的top+变量使用分析(downmoon)
  • 简单实用SQL脚本Part SQLServer 2005 链接服务器
  • Java连接sqlserver2008数据库代码
  • SqlServer2008误操作数据(delete或者update)后恢复数据的方法
  • SqlServer2008 数据库同步的两种方式(发布、订阅使用方法)
  • sqlserver2008自动发送邮件
  • sqlserver2008安装报语言不符的解决方法
  • sqlserver2008锁表语句详解(锁定数据库一个表)
  • 深入SqlServer2008 数据库同步的两种方式(Sql JOB)的分析介绍

相关文章

  • 2017-05-11SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)
  • 2017-05-11java之File对象对文件的操作常用的几个方法(推荐)
  • 2017-05-11SQL Server2008中删除重复记录的方法分享
  • 2017-05-11sqlserver2005 master与msdb数据库备份恢复过程
  • 2017-05-11快速将珊瑚虫IP数据库转MS SQL2005的图文教程第1/2页
  • 2017-05-11win2003 Server配置SQL Server 2005远程连接的方法
  • 2017-05-11SQL SERVER 2008 R2 重建索引的方法
  • 2017-05-11Java基本类型与包装类详细解析
  • 2017-05-11让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式
  • 2017-05-11SQL2005 服务器因重装改名后出错的说明

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 更改SQL Server 2005数据库中tempdb位置的方法
    • sqlserver FOR XML PATH 语句的应用
    • sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表
    • SQL Server2008导出数据之Excel详细解析
    • MSSQL 2008不能用IP登录问题如何解决
    • SQL SERVER 2008 R2 重建索引的方法
    • SQLServer APPLY表运算符使用介绍
    • MSSQL 大量数据时,建立索引或添加字段后保存更改提示超时的解决方法
    • 玩转-SQL2005数据库行列转换
    • MSSQL 2005 LOG备份webshell的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有