【发布时间】:2020-04-05 08:34:20
【问题描述】:
我通过向导配置了数据库邮件并且能够获得电子邮件警报。
当我编写以下查询时:
DECLARE @IsFileExists INT
EXEC Master.dbo.xp_fileexist 'g:\abc.bak', @IsFileExists OUT
BEGIN
IF @IsFileExists = 1
BEGIN
PRINT 'File Exists in the G:\ location'
END
ELSE
BEGIN
DECLARE @htmlbody VARCHAR(4000)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'EMAIL',
@recipients = 'ylx@xly.com',
@subject = 'Database Mail Test'
PRINT 'File Does not Exist in the G:\ location'
END --IF
END
我没有收到任何电子邮件提醒:
这是输出:
(受影响的 1 行)
邮件 (ID: 1065) 已排队。
g:\ 位置中不存在文件
说明:由于邮件服务器故障,无法将邮件发送给收件人。 (使用帐户 1 (2019-12-11T19:00:19) 发送邮件。异常消息:无法向邮件服务器发送邮件。(发送邮件失败。)。)
所有 SQL 服务都在运行,以 sysadmin 用户身份执行脚本。 有人可以建议:
【问题讨论】:
-
请发布异常消息,它在您的屏幕截图中不可见或不可读。
-
smtp.xly.com 使用匿名身份验证?所以你已经独立测试过了,你知道它有效吗?
-
我严重怀疑任何电子邮件服务器都会允许匿名使用。并选择一个引擎——你不能——在这一点上——使用多个版本。您标记的版本与您在主题中放置的版本不匹配没有帮助。
-
@robbpriestley:是的,尝试了匿名身份验证。独立测试并且它可以工作。但是当我在查询中执行它时没有。
-
那是你的问题?你一开始就不能通过那个 SMTP 服务器发送邮件吗?您上面的屏幕截图清楚地表明您正在使用匿名身份验证。
标签: sql sql-server sql-server-2008 sql-server-2012 sql-server-2016