问题标签 [database-mail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3101 浏览

sql - 数据库邮件 - 文件附件访问被拒绝

我们有一个使用 SP_Send_DBMail 的函数。具有 DatabaseMailUserRole 的用户可以发送消息,但一旦他从网络共享附加文件,他就会收到以下错误:

MSG 22051,级别 16,状态 1,第 0 行无法打开附件文件“\....”。拒绝访问。

他对网络共享具有读/写权限。SQLAgent 帐户已对网络共享进行读/写。

应用程序可以很好地发送附件,但他不能在遍历代码或从服务器时发送。

如果我授予他系统管理员权限(仅用于测试),他可以发送附件。

我在这里想念什么?

0 投票
1 回答
1201 浏览

sql-server - 数据库邮件中的超时错误

我每天都在做数据库备份,当然还有工作。但是现在我想将该备份文件发送到另一个地方并想用于该数据库邮件。

我配置了数据库邮件并且可以发送大小小于 10 MB 的文件(至少我测试到这个大小)没有任何问题。但是我的数据库备份大小约为 350 MB,当我尝试发送它时出现错误

异常消息:无法向邮件服务器发送邮件(操作已超时)

. 怎么解决这个问题,有没有人遇到过同样的问题?

0 投票
1 回答
471 浏览

sql - SQL Server 2012 作业失败 - 发送电子邮件

在这里和其他地方做了一些研究,并尝试了一些故障排除尝试后,我向你们寻求帮助。

在 SQL Server 2012 中,我有一份工作,(目前)只有一步。这一步是这样的:

在作业的“常规”选项卡上,我将所有者设置为 God-Mode sql 用户。应该有无限的特权。

在该步骤上,Run As 下拉菜单为空。我不知道如何改变这一点。

在上面的步骤代码中,@profile_name,我尝试了两件事。当我在 Management Studio 中使用数据库邮件尝试“发送测试消息”时,一切正常,它使用的用户是,我们会说,“USERX”。我使用“USERY”设置数据库邮件向导。我尝试将@profile_name 更改为 USERX 和 USERY,但没有明显差异。

这是我得到的错误。这很令人困惑,因为我没有(故意)要求它使用这个用户:以用户身份执行:NT AUTHORITY\SYSTEM。个人资料名称无效

我已经尝试了几件事。在 Database Mail 向导下的 Profile Security 中,唯一可见的用户是 USERX(测试成功用于发送邮件的用户,如上所述)。USERY 没有出现。我在数据库邮件向导中尝试过,在查看更改等帐户下,在那里修修补补。唯一出现在这里的用户是USERY!没有用户!我很困惑。我尝试将 USERY SMTP auth 设置为 windows、basic 和 Anonymous 无济于事。

我读到您需要在 Profile Security 中设置 NT AUTHORITY\SYSTEM 等各种用户,但这也没有显示,NETWORK 也没有。

任何建议都非常受欢迎,非常感谢。

编辑:啊哈!USERX 是一个配置文件,USERY 是一个帐户......两者都很好。测试电子邮件使用的是 USERY 帐户下的 USERX 配置文件。所以我想我需要将 USERX 设置为 @profile_name 但这并不能解决问题。由于某种原因,它仍然使用 NT AUTHORITY\SYSTEM。

0 投票
0 回答
59 浏览

sql - 收集数据库邮件的每周数据

我有一个 SQL 表,它代表当前致力于某项工作的材料。每当一项工作完成时,数据就会被删除,因为我们只想要最终使用的材料的长期记录。

问题是我们现在想要通过电子邮件获取过去一周内每个已提交材料的作业编号和材料编号(包括那些在作业完成时已清除的材料)。我们宁愿不创建新表或每天发送电子邮件。

是否有办法让数据库邮件(通过 SQL Server 代理作业或其他方式)每天收集信息(可能一天不止一次),但在周末只发送一封电子邮件

0 投票
0 回答
408 浏览

sql-server - SQL 电子邮件表格格式提供科学值而不是固定小数

我有一个查询以表格格式将结果发送到我的电子邮件。我使用这个链接作为参考。https://www.mssqltips.com/sqlservertip/2347/send-email-in-a-tabular-format-using-sql-server-database-mail/

我能够成功发送包含我想要的数据的电子邮件,但值不是我想要的方式。

在此处输入图像描述

当我在不使用 HTML 的情况下运行查询时,我得到了正确的格式化值。

在此处输入图像描述

在实现 html 表格格式时,我需要在脚本中做什么才能获得固定值而不是科学记数法?非常感谢任何帮助。

0 投票
1 回答
33550 浏览

sql-server-2008-express - SQL 服务器“无法向邮件服务器发送邮件”“发送邮件失败”

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

我发现了几个关于“无法将邮件发送到邮件服务器”的引用,但对于烦人的通用“发送邮件失败”消息没有任何用处。

我的具体问题是在哪里可以找到该错误消息的含义/导致它的原因?如果某个善良的灵魂愿意冒险猜测发生了什么,或者没有发生什么,我将不胜感激。

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

执行 sp_configure '显示高级'

EXECUTE sp_configure '数据库邮件 XPs'

系统邮件服务器

系统凭证

EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole'

执行 msdb.dbo.sysmail_help_principalprofile_sp

执行 dbo.sysmail_start_sp

sysmail_account

sysmail_profile

sysmail_profileaccount

sysmail_servertype

sysmail_mailitems

系统邮件日志

0 投票
2 回答
9267 浏览

php - How to make your own mailing services like gmail or yahoo

I am a noob to php and databases. But I have an idea to perform mail operations on my own web server (i.e just by database operations), but I really don't have any idea of how to send mail to external websites like gmail. and also I look forward to making my own email-addresses like ex:-myownemail@localhost. I have searched google multiple times but I couldn't find any answer that I could understand. Can anyone tell me in simple words on how to do this?

0 投票
1 回答
956 浏览

sql - 截断数据库邮件表

我们的 SQL 服务器 (2005) 上一直存在一些驱动器空间问题,我刚刚在sys.allocation_units表上运行了一些查询,发现我们有 26GB 的数据库邮件附件。显然,我们只是把它藏在我们的房子msdb里,几年来没有任何清理。

所以我尝试使用sysmail_delete_mailitems_sp但我们正在填写我们的日志并且它达到了我们的空间限制。我查看了这个 sys sproc,它实际上正在运行

带有一些参数和错误处理。这是我假设从 sysmail_xyz 表的集合中删除的系统视图。

我们不需要任何这些旧邮件数据。我们邮寄的所有内容都已经记录并存档在我们的应用程序层中。我能跑吗

这是一个视图,但它正在被删除,所以我想知道我是否也可以截断。如果不是,也许我可以

但我担心我会孤立一些会破坏我的系统的东西。有什么建议么?

0 投票
1 回答
1091 浏览

configuration - 2012标准版无法启动代理服务,声称不支持版本

这开始是因为我试图确定为什么我没有收到来自 SQL Server 2012 标准版默认实例的电子邮件。代理作业一直运行良好,但最后一次尝试在服务器上发送电子邮件并成功是在 2016 年 2 月 2 日,下一次尝试的电子邮件是在 2016 年 3 月 8 日(该电子邮件以及所有后续电子邮件的 sent_account_id 和sent_status 为 0)。

我决定删除当前的电子邮件配置并在默认实例上从头开始重新配置,这需要重新启动代理服务,以便它能够通过电子邮件发送通知。重新启动代理服务不成功。SQLAGENT.OUT 显示:

倒数第三行最有意思:“安装此服务的 SQL Server 版本不支持 SQL Server Agent。” 据我所知,这台服务器上从未有过 Express Edition 实例。此服务器上有两个 Standard Edition 实例,它们都有相同的电子邮件问题,并且在任一实例中执行“SELECT @@VERSION”都会返回:

Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 2015 年 10 月 20 日 15:36:27 版权所有 (c) Microsoft Corporation Standard Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1) (管理程序)

该服务是在 2016 年 2 月 8 日安装 SP3 后新启动的,所以在那之后一定发生了一些变化,导致代理出现一些问题。我找到了另一台服务器(同一项目的测试实例)并发现了相同的问题,该问题在 2015 年 7 月 27 日到 2015 年 9 月 5 日之间的某个时间开始,并且在该范围内(或此后)没有应用 SQL Server 更新。

虽然解决电子邮件问题是让我走上这条道路的原因,但让代理再次运行是更高的优先级(并且可能会解决电子邮件问题)。

当它显然是标准版并且代理服务在服务重新启动前几分钟运行作业时,是什么可能导致代理混淆认为这是一个快速版实例?

我没有在此服务器上的第二个实例上重新启动代理服务,该服务器一直在成功运行作业(与默认实例上的服务一样,直到尝试重新启动服务)。

[添加] 尝试更改要由本地服务帐户运行的代理服务导致“系统找不到指定的文件。[0x80070002]”

我在 SQL 错误日志中发现了这一点:

在队列“msdb.dbo.ExternalMailQueue”上运行的激活过程“[dbo].[sp_sysmail_activate]”输出以下内容:“无法创建 DatabaseMail.exe 进程。执行 API 'CreateProcess' 失败,错误号为 2。

0 投票
1 回答
1835 浏览

sql - 当我给它一个 HTML 正文时,SQL Server 数据库邮件正在发送空白消息

我正在尝试使用 SQL Server Management Studio Database Mail 发送自动 HTML 格式的电子邮件。当我给它一个纯文本正文时它工作正常,但是一旦我将它更改为 HTML,消息就是空白的。他们仍然发送正确的主题和其他所有内容,但身体不在那里。

这是相关的代码:

注意:我现在唯一担心开始工作的案例是“在 CRM 中创造机会”的案例。此外,这里使用的几个变量在代码的前面声明和/或设置,如@opty_id 和@description。