当前位置: 代码迷 >> Sql Server >> sql2005 怎么发mail
  详细解决方案

sql2005 怎么发mail

热度:75   发布时间:2016-04-27 12:04:35.0
sql2005 如何发mail?
sql2005 如何发mail?

------解决方案--------------------
using System.Web.Mail;
using System.Net;
public string FYJ()
try
{
MailMessage Mail = new MailMessage();
Mail.From = "[email protected]";//发邮件人地址(站长)
Mail.To = "[email protected]";//目标地址(客户)
Mail.Subject = "测试发送邮件!";//邮件标题
Mail.Body = "哈哈你收到了吗,您的注册用户名是:"+name+" 密码是:"+pwd+" 请保管好你的用户名和密码!谢谢您的加入"; //要发的邮件内容
Mail.BodyFormat = MailFormat.Html;
Mail.Priority = MailPriority.High;
Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "你的邮箱帐号");//邮箱的帐户名
Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "这里写密你的密码");//邮箱的密码
System.Web.Mail.SmtpMail.SmtpServer = "smtp.163.com";
System.Web.Mail.SmtpMail.Send(Mail);
Response.Write("<script>alert('发送成功!')</script>");
}
catch (Exception exp)
{
Response.Write(exp.Message);
}

}

------解决方案--------------------
使用Database Mail.
------解决方案--------------------
管理--邮件库邮件--配置数据库邮件

EXEC msdb.dbo.sp_send_dbmail
@[email protected]',
@body=N'The master database is full.' ; 

------解决方案--------------------
SQL code
SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。  以下脚本实现了数据库邮件的配置:--下面是具体的配置邮件步骤 --在 sa 系统帐户下运行。 ----1. 启用 SQL Server 2005 邮件功能。 use mastergoexec sp_configure 'show advanced options',1goreconfiguregoexec sp_configure 'Database mail XPs',1goreconfigurego--2. 在 SQL Server 2005 中添加邮件帐户(account) exec msdb..sysmail_add_account_sp        @account_name            = 'jgj'      -- 邮件帐户名称(SQL Server 使用)       ,@email_address           = [[email protected]'][email protected]'[/email] -- 发件人邮件地址       ,@display_name            = null                      -- 发件人姓名       ,@replyto_address         = null       ,@description             = null       ,@mailserver_name         = '203.86.70.229'           -- 邮件服务器地址       ,@mailserver_type         = 'SMTP'                    -- 邮件协议(SQL 2005 只支持 SMTP)       ,@port                    = 25                        -- 邮件服务器端口       ,@username                = [[email protected]'][email protected]'[/email] -- 用户名       ,@password                = 'xxxxxx'      -- 密码       ,@use_default_credentials = 0       ,@enable_ssl              = 0       ,@account_id              = null--3. 在 SQL Server 2005 中添加 profile exec msdb..sysmail_add_profile_sp @profile_name = 'dba_profile'      -- profile 名称                                  ,@description  = 'dba mail profile' -- profile 描述                                  ,@profile_id   = null-- 在 SQL Server 2005 中映射 account 和 profile exec msdb..sysmail_add_profileaccount_sp  @profile_name    = 'dba_profile' -- profile 名称                                          ,@account_name    = 'jgj'     -- account 名称                                          ,@sequence_number = 1             -- account 在 profile 中顺序 --5. 利用 SQL Server 2005 Database Mail 功能发送邮件。 exec msdb..sp_send_dbmail @profile_name =  'dba_profile'     -- profile 名称                          ,@recipients   =  [[email protected]'][email protected]'[/email]  -- 收件人邮箱                          ,@subject      =  'SQL Server 2005 Mail 测试' -- 邮件标题                          ,@body         =  'Hello Mail!测试'   -- 邮件内容                          ,@body_format  =  'TEXT'      -- 邮件格式 --6. 查看邮件发送情况: use msdbgoselect * from sysmail_allitemsselect * from sysmail_mailitemsselect * from sysmail_event_log--如果不是以 sa 帐户发送邮件,则可能会出现错误: ----Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1--EXECUTE permission denied on object 'sp_send_dbmail', database 'msdb', schema 'dbo'.----这是因为,当前 SQL Server 登陆帐户(login),在 msdb 数据库中没有发送数据库邮件的权限,需要加入 msdb 数据库用户,并通过加入 sp_addrolemember 角色赋予权限。假设该SQL Server 登陆帐户名字为 “dba” ----use msdb--go----create user dba for login dba--go----exec dbo.sp_addrolemember @rolename   = 'DatabaseMailUserRole',--                          @membername = 'dba'--go----此时,再次发送数据库邮件,仍可能有错误: ----Msg 14607, Level 16, State 1, Procedure sp_send_dbmail, Line 119--profile name is not valid----虽然,数据库用户 “dba” 已经在 msdb 中拥有发送邮件的权限了,但这还不够,他还需要有使用 profile:“dba_profile” 的权限。 ----use msdb--go----exec sysmail_add_principalprofile_sp  @principal_name = 'dba'--                                     ,@profile_name   = 'dba_profile'--                                     ,@is_default     = 1----从上面的参数 @is_default=1 可以看出,一个数据库用户可以在多个 mail profile 拥有发送权限。
  相关解决方案