我正在运行一个返回结果表的SQL查询.我想使用dbo.sp_send_dbMail在电子邮件中发送表格.
在SQL中有一种直接的方法可以将表转换为HTML表吗?目前,我正在使用COALESCE手动构建它,并将结果放入我用作emailBody的varchar中.
有一个更好的方法吗?
我遇到了以下问题:当尝试发送带有作为文件附加查询结果的电子邮件时,通过执行普通查询使用sp_send_dbmail一切似乎都正常.
但是,如果将相同的代码添加到JobStep并运行作业,则会失败.
工作经历中的错误说
格式化查询时出错,可能是无效参数[SQLSTATE 42000](错误22050).步骤失败了.
但是当我注释掉引用文件的参数时,它再次开始正常工作.
exec msdb.dbo.sp_send_dbmail
@profile_name = 'profile_name',
@recipients = 'some@mail.com',
@body = 'body',
@subject = 'subj',
--Parameters that refers to attached file
@attach_query_result_as_file = 1,
@query_result_header = 0,
@query_result_no_padding = 1,
@query = 'select 1',
@query_attachment_filename = 'test.csv'
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我有一个SQL Server 2008程序,通过sp_send_dbmail发送电子邮件.
我正在使用以下代码:
set @bodyText = ( select
N'Here is one line of text ' +
N'It would be nice to have this on a 2nd line ' +
N'Below is some data: ' +
N' ' +
N' ' +
field1 +
N' ' +
field2 +
N' ' +
N'This is the last line'
from myTable )
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'myProfile',
@recipients = @to,
@body = @bodyText,
@body_format = 'TEXT',
@subject = 'Testing Email' ;
Run Code Online (Sandbox Code Playgroud)
我的myProfile设置为使用本地smtp服务器,这导致c:\ …
我有一个SSRS报告,我需要使用SQL Server中的sp_dbmail存储过程将其嵌入到电子邮件正文中.我可以使用Outlook的前端通过在附加文件时使用"作为文本插入"选项附加SSRS报告的.mhtml导出来执行此操作.
有没有办法使用sp_dbmail sproc来做到这一点?
我正在使用SQL Server 2014 Standard
我有一个每晚运行的存储过程,它应该将查询结果发送给几个收件人.但是在大多数日子里,它最终会在一分钟后发送重复的电子邮件.我使用的代码如下(所有电子邮件和数据库引用都已更改):
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'email1@email.com',
@copy_recipients = 'email2@email.com;email3@email.com;email4@email.com',
@subject = 'Example Email',
@profile_name = 'ExampleProfile',
@query = 'SELECT name
FROM table
WHERE date BETWEEN (getdate() - 1) AND getdate()',
@attach_query_result_as_file = 1
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助将不胜感激.
我已经尝试了每个该死的论坛上的每条大道,但无济于事!需要将已存储在表中的SQLPERF(logspace)的结果发送sp_send_dbmail给收件人.
工作的第2步是失败发生的地方.请帮忙!
EXEC msdb.dbo.sp_send_dbmail
@profile_name= 'MyDBA',
@recipients= 'Mack@mydba.co.za',
@subject='Log Warning',
@query='SELECT * from #TempForLogSpace WHERE LogSpaceUsed >80
Run Code Online (Sandbox Code Playgroud) 我正在从SQL Server发送电子邮件,并需要sent_status将msdb.dbo.sysmail_mailitems表中列的值映射到更具描述性的内容.
到目前为止,我已经确定了两个值:
是否有更多可能的值,如果有,它们代表什么?
我在表上使用触发器使用sp_send_dbmail发送电子邮件.
我想在图像类型的电子邮件中包含文件附件.
jpeg的原始数据存储在ndl_Image列中,该列的类型为binary.
我有以下代码: -
DECLARE @ReferenceID varchar(max)
DECLARE @Recipient varchar(Max)
DECLARE @Body varchar(max)
DECLARE @Subject varchar(max)
DECLARE @Q varchar(max)
--Get the EntryId and FormID for the inserted data.
SET @ReferenceID = 40
SET @Recipient = (SELECT ndl_CategorySendTo FROM ndl_config WHERE ndl_CategoryName = 'Dead Animal')
SET @Body = '<html>A new request has been created.</html>'
SET @Subject = 'NDL Report It: New Request #'+@ReferenceID
SET @Q = 'SELECT ndl_Image from dbo.ndl_data where ndl_ID ='+@ReferenceID
--Execute the stored procedure to send mail. …Run Code Online (Sandbox Code Playgroud) 我有两个问题涉及使用sp_send_dbmail将查询结果作为附件发送.
问题1:只打开基本的.txt文件.任何其他格式如.pdf或.jpg都已损坏.
问题2:尝试发送多个附件时,我会收到一个文件,其中所有文件名都粘在一起.
我正在运行SQL Server 2005,我有一个存储上传文档的表:
CREATE TABLE [dbo].[EmailAttachment](
[EmailAttachmentID] [int] IDENTITY(1,1) NOT NULL,
[MassEmailID] [int] NULL, -- foreign key
[FileData] [varbinary](max) NOT NULL,
[FileName] [varchar](100) NOT NULL,
[MimeType] [varchar](100) NOT NULL
Run Code Online (Sandbox Code Playgroud)
我还有一个带有标准电子邮件的MassEmail表.这是SQL Send Mail脚本.为简洁起见,我排除了声明声明.
while ( (select count(MassEmailID) from MassEmail where status = 20 )>0)
begin
select @MassEmailID = Min(MassEmailID) from MassEmail where status = 20
select @Subject = [Subject] from MassEmail where MassEmailID = @MassEmailID
select @Body = Body from MassEmail where MassEmailID = @MassEmailID
set …Run Code Online (Sandbox Code Playgroud) sp_send_dbmail除了我使用Gmail帐户发送给收件人时,我正在使用哪个工作正常.数据库邮件日志提供以下错误:
Error,80,The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 2 (2015-05-29T13:22:39). Exception Message: Cannot send mails to mail server. (Unable to send to a recipient.))
Run Code Online (Sandbox Code Playgroud)
所有未使用Gmail的收件人都会正确收到邮件.
当我手动使用Outlook向此Gmail帐户发送邮件时,它正在运行.收件人正确收到邮件.SQL Server邮件帐户未使用Gmail.我使用端口25和SSL(我试过没有SSL,它也没有工作).
程序调用如下:
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'somemail@company.com;somemail@gmail.com',
@copy_recipients = 'somemail@company.com',
@profile_name = 'my_profile',
@subject = 'mail subject',
@body = 'some content',
@body_format = 'Text';
Run Code Online (Sandbox Code Playgroud) sp-send-dbmail ×10
sql-server ×8
sql ×4
html ×2
attachment ×1
duplicates ×1
emacs ×1
email ×1
ssrs-2012 ×1
temp-tables ×1