问题标签 [sp-send-dbmail]

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 投票
2 回答
6708 浏览

sql-server - SQL Server SP_SEND_DBMAIL 图像文件附件

我正在使用表上的触发器使用 sp_send_dbmail 发送电子邮件。

我想在图像类型的电子邮件中包含文件附件。

jpeg 的原始数据存储在二进制类型的 ndl_Image 列中。

我有以下代码: -

这工作正常,但如果我注释掉最后一行,似乎会将查询作为文本文件返回。

如何将附件作为 jpeg 文件获取????

谢谢。

0 投票
0 回答
2275 浏览

xml - sp_send_dbmail 在附加的 xml 查询结果中插入换行符

当您使用msdb.dbo.sp_send_dbmail以附件形式发送查询结果时,您必须提供@query_result_width介于 10 和 32767 之间的整数的参数。
现在,如果您For XML Path('Row'), Root('Data'), Type在最外部的 Select 查询中使用,您可能会得到 send_dbmail 来发送xml 附件,非常容易在 Microsoft Excel 中打开(只需单击 2 或 3 次,这是一个不错的 Excel 表格)
但是,如果您的 xml 文件超过 32767 字节,send_dbmail 将在 xml 文件的第一行的第 32767 列插入一个“换行符”,并且它会无条件地执行此操作!这意味着它不在乎那里写的是什么。它只是打破了这条线,因此会破坏你的 xml 数据......我已经在互联网上徘徊了 5 个多小时,没有关于如何防止 sp_send_dbmail 注入那个讨厌的换行符的积极结果。我遇到的唯一解决方案是在我有控制权的地方注入换行符,它不在第 32767 列之后。像下面这样的查询可以解决问题,但这是额外的工作而且不干净......

有人有更好的主意吗?我在这里错过了什么吗?
我使用 SQL Server 2008 Enterprise (x64)

0 投票
1 回答
8724 浏览

sql - 如何使用 sp_send_dbmail 发送多个查询?

我正在尝试使用sp_send_dbmail. 我需要它将一个查询作为附件发送,另一个作为电子邮件正文的一部分发送。问题是sp_send_dbmail只有一个 @query 参数,我看不到任何添加另一个参数的方法。

有没有办法a)添加第二个查询(附加所有参数)或b)将查询执行到变量中,然后将其添加到我的电子邮件正文中?

我正在使用 sql-server 2005。

蒂亚!

0 投票
1 回答
2384 浏览

sql - 测试 sp_send_dbmail 查询的结果集?

我正在尝试使用 Sql Server 2005 发送电子邮件sp_send_dbmail。我将正文和查询作为附件发送。

但是,有时查询会返回一个空数据集。

在发送电子邮件之前,我有什么方法可以测试数据集的结果,如果没有结果,就不要将其作为附件发送。

我想在发送电子邮件之前运行查询,并以这种方式测试结果。然后,我有一个if-else如下:

但我认为这不是解决问题的有效方法。

有什么建议么?蒂亚!!

0 投票
2 回答
736 浏览

sql - sql server 2008 dbmail 错误 sp_send_dbmail - 无法将空值插入表 sysmail_mailitems 中的“last_mod_user”

我们的 dbmail 被冲洗掉了,我正在尝试解决这个问题。

我最近重新创建了 sp_send_dbmail,但没有收到关于 msdb.dbo.sysmail_mailitems 表中 last_mod_user 列中的空值的奇怪错误(错误 515)

0 投票
1 回答
7791 浏览

sql-server-2005 - 只有一些电子邮件从 SQL Server 2005 上的 sp_send_dbmail(数据库邮件)成功发送

我想找到sp_send_dbmail在 SQL Server 2005 上使用时发生的事情的答案。我一直在使用谷歌搜索但没有成功,我现在真的不知道该去哪里。

这是场景:

我在我们的 SQL 服务器上设置了一个邮件功能。我在一个表格中有电子邮件地址,在另一个表格中有内容。对于我在表中找到的每个地址,我使用sp_send_dbmail存储过程将新消息编译到该地址。

当我稍后执行执行上述操作的自己的 SP 时(接收电子邮件并将新消息编译给收件人),DatabaseMail90.exe 在服务器上启动,并且正在发送电子邮件。但这就是棘手的地方,因为一些邮件是直接分发的,可能是因为它位于同一个域和网络上。复杂的是,大多数(不是全部)外部邮件在 msdb.dbo.sysmail_mailitems 表中出现错误。但混乱并不止于此。尽管在 msdb.dbo.sysmail_mailitems 表中报告了错误,但某些电子邮件仍在传递。

这是我用来查看已发送消息状态的查询:

我已经配置了数据库邮件,系统参数如下:

  • 帐户重试次数:3
  • 帐户重试延迟(秒):30
  • 最大文件大小(字节):50000000(永远不会这么大,但为了安全起见)
  • 禁止的附加文件扩展名:exe、dll、vbs、js
  • 数据库邮件可执行文件最短生命周期(秒):300
  • 日志记录级别:扩展

我的数据库邮件配置文件是公共的并设置为默认配置文件。我还建立了一个现有的个人资料。

这是执行一切并开始发送邮件的 SP:

所以问题仍然存在。有没有办法让我调整设置以更快地发送电子邮件?而且,真正的问题是,为什么有时发送电子邮件时会出错?它发送到的电子邮件地址没有任何问题。我应该在哪里查找代码或数据库邮件配置中可能出现的错误?你有过这样的经历吗?

msdb.dbo.sysmail_mailitems 表中的错误描述是什么?我的意思是,向外部域报告了错误,但邮件已送达。或者如果邮件没有送达,我应该在哪里查看导致问题的原因。

0 投票
1 回答
6609 浏览

sql-server-2005 - 如何确定 SQL Server 2005 中 sp_send_dbmail 的错误代码?

我正在尝试使用 SQL Server 2005 中的 sp_send_dbmail 发送附件。我首先编写了一个 CLR 存储过程,将一些内容保存到服务器上的文件中,然后调用下面列出的存储过程,然后删除它创建的文件。我从我的 ASP.NET 2010 应用程序中调用此 CLR 存储过程。在本地,此功能在 SQL Management Studio 和我的应用程序中都有效。

这是我的 CLR 存储过程中的基本内容:

这是发送电子邮件的存储过程:

在本地成功测试此代码作为我的应用程序的一部分后,我将其移至我们的测试服务器。在测试服务器上,当我从 Management Studio 执行 CLR sproc 时,它成功发送了邮件。但是,当我从我的 ASP.NET 应用程序执行它时,我从 msdb.dbo.sp_send_dbmail 的返回码是 1,而 @@ERROR 是 0 - 我没有收到其他错误。我知道在 SQL 2008 中我可能会得到一个更有帮助的@@ERROR 代码,至少根据 2008 年的文档。

有人有什么建议吗?你觉得我可能做错了什么?

非常感谢提前,吉姆

0 投票
11 回答
199083 浏览

html - 将 SQL 查询结果表转换为电子邮件的 HTML 表

我正在运行一个返回结果表的 SQL 查询。我想使用 dbo.sp_send_dbMail 在电子邮件中发送表格。

SQL 中是否有一种直接的方法可以将表格转换为 HTML 表格?目前,我正在使用 COALESCE 手动构建它,并将结果放入我用作 emailBody 的 varchar 中。

有一个更好的方法吗?

0 投票
1 回答
2517 浏览

sql-server - 如何从 sp_send_dbmail 更改附件的编码?

在从 SQL Server 上的 sp_send_dbmail 生成数据附件时,有没有办法将编码从默认的“UniCode”更改为 UTF-8?我发现曾经有一个标志 'ANSI_Attachment' 来实现这一点,但它在 SP2 中被删除了......不确定它是否属实。

0 投票
0 回答
261 浏览

sql - 将带有图像的 htm 文件流式传输到 sp_send_dbmail

我有一个存储过程运行 sp_makewebtask 来创建一个 .HTM 文件。该文件由图像和查询的输出以及一些附加词组成。我想做的是使用 sp_send_dbmail 发送那个 .HTM 文件。我知道我可以绕过 sp_makewebtask 步骤并动态创建 .HTM 文件,但我希望避免这种情况。有任何想法吗?谢谢

EXEC msdb.dbo.sp_send_dbmail @recipients='John.Testing@companyX.COM',
@subject = 'My Mail Test',
@body = @Var1, --基本上我想知道如何用动态创建的 .HTM 文件
@body_format = 'HTML'