Chinaunix首页 | 论坛 | 博客
  • 博客访问: 799708
  • 博文数量: 127
  • 博客积分: 3662
  • 博客等级: 中校
  • 技术积分: 1371
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-02 12:36
个人简介

Linux&MySQL&PHP&Nginx&Apache&MSSQL&Shell

文章分类

全部博文(127)

文章存档

2016年(1)

2015年(8)

2014年(14)

2013年(26)

2012年(17)

2011年(28)

2010年(33)

分类: Mysql/postgreSQL

2012-11-29 11:08:11

1:配置数据库邮件

2:配置好之后就可以发送邮件了
发送邮件是以msdb下面是存储过程sp_send_dbmail来发送的

点击(此处)折叠或打开

  1. use msdb
  2. Go
  3. DECLARE @tableHTML NVARCHAR(MAX) ;
  4. DECLARE @title NVARCHAR(MAX) ;
  5. @title='测试邮件';
  6. SET @tableHTML =N'

    标题

    '

  7.                 +N''
  8.                 +N'
  9. '
  10.                 +N'
  11. '
  12.                 +N'
  13. '
  14.                 +N'
  15. '
  16.                 +N'
  17. '
  18.                 +CAST (
  19.                     (SELECT
  20.                     td = account,
  21.                     '',td = name,
  22.                     '',td = usd,
  23.                     '',td = paypal,
  24.                      '',td = datetime from Databases.dbo.xxx

  25. FOR XML PATH('tr'), TYPE) AS NVARCHAR(MAX) ) +N'
  26. account name usd paypal datetime
    '
    ;
  27.     EXEC msdb.dbo.sp_send_dbmail
  28.             @profile_name='mail config(这里是上面地址配置的邮件配置文件名)',
  29.             @recipients='xxx.163.com;yyy@163.com',(收件箱地址)
  30.             @copy_recipients='zzz@163.com',(抄送地址)
  31.             @subject = @title,(邮件标题)
  32.             @body = @tableHTML,(正文)
  33.             @body_format = 'HTML' ;

对于上面的格式,注意width="1541px 来设置表格的宽度,否则有些数据会自动换行
F5运行上面是命令就可以发送邮件了

-------------------------------------------------------------------------------------------------------------------------------------------------------
发现写成sp比较方便实用


点击(此处)折叠或打开

  1. CREATE PROCEDURE sp_email
  2.         @smail varchar(200),
  3.         @cmail varchar(200)
  4. as
  5. DECLARE @tableHTML NVARCHAR(MAX) ;
  6. declare @title varchar(100)
  7. declare @edate varchar(10)
  8. declare @sum varchar(10)
  9. -- 定义日期和退款金额
  10. select @edate=dd,@sum=ff from openquery(GAME_ADMIN,
  11. 'SELECT DATE_ADD(CURDATE(),INTERVAL -1 DAY) dd,ABS(SUM(g_amount)) ff FROM gp_admin.gm_payment_reversed WHERE g_created_date BETWEEN DATE_ADD(CURDATE(),INTERVAL -1 DAY) AND CURDATE()')
  12. -- 定义邮件标题
  13. set @title=@edate+'退款'+@sum
  14. -- 定义邮件内容
  15. set @tableHTML=N'

    退款订单

    '

  16.                 +N''
  17.                 +N'
  18. '
  19.                 +N'
  20. '
  21.                 +N'
  22. '
  23.                 +N'
  24. '
  25.                 +N'
  26. '
  27.                 +N'
  28. '
  29.                 +N'
  30. '
  31.                 +N'
  32. '
  33.                 +N'
  34. '
  35.                 +CAST (
  36.                     ( select td = g_payment_gateway_no,
  37.         '',td = g_created_by,
  38.         '',td = g_payment_type,
  39.         '',td = amount,
  40.         '',td = g_trans_no,
  41.         '',td = g_parent_trans_no,
  42.         '',td = g_trans_error,
  43.         '',td = convert(varchar(19),g_created_date,121),
  44.         '',td = g_merchant_trans_no from openquery(GAME321_ADMIN,'SELECT g_payment_gateway_no,
  45. g_created_by,
  46. g_payment_type,
  47. CAST(g_amount AS SIGNED) amount,
  48. g_trans_no,g_parent_trans_no,
  49. g_trans_error,
  50. g_created_date,
  51. g_merchant_trans_no
  52. FROM gp_admin.gm_payment_reversed WHERE g_created_date BETWEEN DATE_ADD(CURDATE(),INTERVAL -1 DAY) AND CURDATE()')
  53.                     FOR XML PATH('tr'), TYPE) AS NVARCHAR(MAX) ) +N'
  54. g_payment_gateway_no g_created_by g_payment_type amount g_trans_no g_parent_trans_no g_trans_error g_created_date g_merchant_trans_no
    '
    ;
  55. -- 发送邮件
  56.                             EXEC msdb.dbo.sp_send_dbmail @profile_name='mail config', -- 邮件配置文件名
  57.                             @recipients=@smail, -- 发送邮件地址
  58.                             @copy_recipients=@cmail, -- 抄送邮件地址
  59.                             @subject = @title, -- 邮件标题
  60.                             @body = @tableHTML, -- 邮件内容
  61.                             @body_format = 'HTML' ;
运行格式
exec dbo.sp_email '发送邮件地址1;发送邮件地址2','抄送邮件地址1;抄送邮件地址2'
阅读(4856) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~