标签: database-mail

脚本设置数据库邮件

我已经使用SQL Server 2008 GUI在我的测试服务器上设置数据库邮件配置文件和帐户,现在我想将它们复制到我们的生产数据库中.

有没有办法生成一个脚本来做到这一点?

email database-mail sql-server-2008

15
推荐指数
1
解决办法
3万
查看次数

错误:注意:无法通过电子邮件通知"操作员".当作业失败时尝试发送电子邮件

我在工作失败时发送通知时遇到问题.我创建了数据库邮件配置文件并将其分配给SQL代理和重新启动的SQL代理.当我运行程序时msdb.dbo.sp_send_dbmail,正在发送电子邮件.此外,当我使用数据库邮件发送测试电子邮件时,它工作正常.但是当我在Job失败时设置通知时,在作业日志中我看到以下信息:注意:无法通过电子邮件通知"SQL作业失败". 我不知道这个问题的根源是什么.我发现这个提示:http://sqlblog.jfperry.com/jpsql/post/2009/04/07/NOTE-Failed-to-notify-7boperator7d-via-email.aspx

但我检查了在SQL Agent中启用了配置文件.SQL Agent已重新启动.哪里可以成为问题的根源?

database-mail sql-server-2008-r2

12
推荐指数
3
解决办法
9704
查看次数

SQL维护计划在未配置邮件时发送邮件

我在午夜运行的SQL Server 2008 R2下有一个维护计划.在此维护任务中,没有通知操作员任务.在执行维护计划的SQL代理作业中,没有电子邮件警报.但是,每次运行此作业时,我都会收到来自SQL Server的主题为"SQL Server消息"的电子邮件.我无法理解为什么这封邮件不断发送.这是邮件正文开头的内容:

Microsoft(R)服务器维护实用程序(Unicode)版本10.50.1617报告是在"SERVERNAME"上生成的.维护计划:我的维护计划持续时间:00:01:02状态:成功.细节:

任何想法为什么这个邮件发送,我应该更新配置,以便它只发送失败或根本不发送?

sql-server database-mail sql-server-2008 maintenance-plan sql-agent-job

9
推荐指数
1
解决办法
4144
查看次数

如何在不同的数据库中为登录访问SQL Server数据库邮件过程?

我想知道如何在SQL Server中设置权限,以允许我的应用程序登录/角色能够使用发送电子邮件msdb.dbo.sp_send_dbmail.

我有一个数据库MyDb,一个MyUser角色成员的用户AppRole.我有一个myProc调用的存储过程msdb.dbo.sp_send_dbmail.如果我myProc在登录时执行,因为sa它一切正常,但如果我在登录时执行,因为MyUser我收到错误:

消息229,级别14,状态5,过程sp_send_dbmail,行1
对象'sp_send_dbmail',数据库'msdb',架构'dbo'上的EXECUTE权限被拒绝.

我的数据库没有TRUSTWORTHY ON,因此我认为我不能使用EXECUTE AS来模仿其他用户,例如使用EXECUTE AS OWNER创建myProc ...(MSDN参考)

因此,我认为我需要让我的用户也是msdb中的用户,但是我可以在角色级别执行此操作,还是需要使我的每个数据库用户也是msdb中的用户?

我正在使用的数据库邮件配置文件设置为public,因此我认为这与配置文件权限无关.

sql-server sql-server-2005 database-permissions database-mail

8
推荐指数
1
解决办法
3万
查看次数

SQL服务器"无法发送邮件到邮件服务器""发送邮件失败"

我正在使用64位的MS SQL Server 2008 R2 SP2 Express版.我无法访问数据库邮件设置向导,但Binn目录包含DatabaseMail.exe(v10.50.16600.1)和DatabaseMailengine.dll.

我发现了几个引用"无法发送邮件到邮件服务器",但没有什么用于烦人的通用"发送邮件失败"消息.

我的具体问题是,在哪里可以找出错误信息的含义/原因是什么?如果某种善良的人会想要猜测发生了什么,或者没有继续下去,我会很感激.

来自数据库的设置信息如下:

执行sp_configure'show advanced'

name                    minimum maximum config_value    run_value
show advanced options   0       1       1               1
Run Code Online (Sandbox Code Playgroud)

执行sp_configure'Database Mail XPs'

name                minimum maximum config_value    run_value
Database Mail XPs   0       1       1               1
Run Code Online (Sandbox Code Playgroud)

sysmail_server

account_id  servertype  servername      port username           credential_id   use_default_credentials enable_ssl  flags   timeout last_mod_datetime       last_mod_user
1           SMTP        smtp.gmail.com  465  sqlmail@domain.com 65536           0                       1           0       NULL    2015-11-23 09:34:26.913 WSCORP\username
Run Code Online (Sandbox Code Playgroud)

sys.credentials

credential_id   name                                 credential_identity create_date             modify_date             target_type target_id
65536           F05ADE33-6AA8-45FC-8FF5-A7631831ECB1 sqlmail@domain.com  2015-11-23 09:34:26.913 2015-11-23 09:34:26.913 …
Run Code Online (Sandbox Code Playgroud)

database-mail sql-server-2008-express

6
推荐指数
1
解决办法
2万
查看次数

将数据库邮件用作电子邮件中继服务器是一个好主意吗?

我们的一个问题是我们的出站电子邮件服务器有时很糟糕.用户将在我们的应用程序中触发电子邮件,并且应用程序可能需要大约30秒才能实际发送.让我们更糟糕,并承认我们甚至没有在后台线程上这样做,所以在这段时间内用户完全被阻止.SQL Server数据库邮件已被提议作为此问题的解决方案,因为它基本上实现了一个消息队列,并且比我们的第三方电子邮件主机更接近,响应更快.对我们来说,这也很容易实现,因为它只是将一个调用替换SmtpClient.Send为执行存储过程.我们的大部分应用程序电子邮件都包含PDF,XLS等,我看到这些附件的大小高达20MB.

使用数据库邮件处理我们所有的应用程序电子邮件对我来说都不好,但由于实施成本极低,我很难说出任何人.我们的生产数据库服务器功能太强大,所以我不确定它是否也无法处理负载.任何想法或更安全的替代品?

sql-server database-mail emailrelay

5
推荐指数
1
解决办法
1444
查看次数

MSDB.dbo.sysmail_faileditems中没有行

最初,当我尝试查询我需要创建的报告的内容时,我收到了"无SELECT权限"错误.所以我们DatabaseMailUserRole在MSDB中授予了我的帐户 - 我看到了列,但没有一个我们知道存在的数据.

我缺少什么需要为我的帐户查看数据?

sql t-sql sql-server sql-server-2005 database-mail

3
推荐指数
1
解决办法
1870
查看次数

数据库邮件不会向 smtp.office365.com 发送电子邮件

我正在使用 SQL Server 2017,尝试配置数据库邮件。如果我使用 smtp.gmail.com 数据库邮件工作正常。但是,客户端正在使用 smtp.office365.com,我无法让它工作。我得到的错误是:

由于邮件服务器故障,邮件无法发送给收件人。”

我知道我正在传递工作的凭据/配置信息,因为我有一个 C# 应用程序,可以使用相同的信息发送电子邮件。对于我正在使用的数据库邮件配置:

Basic Authentication
PORT = 587
Use SSL = True
Server Name = smtp.office365.com
Run Code Online (Sandbox Code Playgroud)

..是的,我用于身份验证的“用户名”-确实与“电子邮件地址”条目匹配。

有人知道为什么 smtp.office365.com 在数据库邮件中不起作用吗?

另一条注释 - 每隔一段时间它就会起作用 - 我只是在大多数时间无法让它起作用。

sql-server smtp database-mail

3
推荐指数
2
解决办法
3万
查看次数

SQL Server发送电子邮件通知插入表中的数据 - 选项?

我有一个SQL Server数据库,它在几个ASP.NET(VB.NET)网站之间共享,数据库有一个存储客户查询的表 - 我希望提供电子邮件通知,通知新的查询以解决组织内部的人员(可能将一些查询数据放入电子邮件正文中).请问有人可以根据如何实施这些方案来概述我的选择吗?

我的想法是:

  1. 的SQLMail
  2. 数据库邮件
  3. 使用System.Net.Mail库的VB.NET存储过程?
  4. 其他选择?

选项3似乎是可取的,因为我知道如何在VB.NET中这样做,这是微不足道的.

  • 我还有什么其他选择?
  • 有什么警告?
  • 我可以实时执行此操作,即触发器(插入量很低)吗?
  • 或者这是批量即工作至关重要的?

任何帮助非常欢迎!谢谢.

t-sql sql-server stored-procedures database-mail clrstoredprocedure

1
推荐指数
1
解决办法
2323
查看次数

从SQL Server触发器调用Powershell脚本

是否可以从sql server触发器使用powershell"Send-MailMessage -SMTPServer"命令?

我正在尝试在数据库更新中的行或创建新行时发送电子邮件.由于安全限制,我无法使用数据库邮件.但是,我可以通过powershell的Send-MailMessage命令发送电子邮件.

sql-server email powershell triggers database-mail

1
推荐指数
1
解决办法
2729
查看次数

作业失败时发送电子邮件通知不起作用

  1. 我为sysadmin准备了脚本,用于创建和配置数据库邮件配置文件,帐户和操作员.他运行脚本,所以我创建了临时工作,但失败了.然后我在作业失败时设置电子邮件通知.我运行Job,但没有发送电子邮件.然后我尝试运行msdb.dbo.sp_send_dbmail 程序,使用相同的操作员,我收到了电子邮件.当作业失败时,不发送电子邮件的原因是什么?如果在作业失败时使用电子邮件通知正在运行哪个程序 - 它是否与sp_send_dbmail?不同?

  2. 另一件事是在数据库邮件日志中没有关于发送电子邮件状态的信息(它是空的) - 也许我没有权限看到日志?

  3. 我将配置文件设置为公共,正在运行dbo.sysmail_add_principalprofile_sp procedure,但是当我尝试发送运行msdb.dbo.sp_send_dbmail已记录为dbowner 的电子邮件时,我收到错误:EXECUTE权限被拒绝..为什么只有当我以用户身份登录时它才有效?

我正在使用SQL Server 2008.

这是一个T-SQL代码,我传递给sysadmin来创建和配置数据库邮件.

-- Create a Database Mail account

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'Mail Account',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'xx@xx.pl',
    @display_name = 'Job failure notification',
    @mailserver_name = 'xx.xx.xxx' ,
    @username = 'aaa',
    @password = 'xxx'

-- Create a Database Mail profile


 EXECUTE msdb.dbo.sysmail_add_profile_sp
    @profile_name = 'Database Mail Profile',
    @description = 'Profile used for job failure …
Run Code Online (Sandbox Code Playgroud)

database-mail sql-server-2008

0
推荐指数
1
解决办法
2万
查看次数

数据库邮件性能

SQL Server数据库邮件提供了很好的内置功能,如日志记录.我想用它来发送大量的电子邮件(数百万+)非常快(几百万/小时).

数据库邮件是否专为此类用途而设计,我是否可以通过此解决方案达到生产所需的性能?

sql-server database-mail

-3
推荐指数
1
解决办法
634
查看次数