我在线跟踪指南,通过SQL Server Express发送邮件,但它一直说“邮件(Id:1)排队等待”,最多17次,因为我现在尝试了17次。
电子邮件是虚拟邮件,而不是我的真实邮件。这只是一个例子。我在SQL Server Management Studio中使用我的真实邮件。我的老师叫SQL Server Express。
代码的第一部分(创建sysmail帐户)
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'MailTest',
@description = 'Sent Mail using MSDB',
@email_address = 'testmail@mail.com',
@display_name = 'Landlyst',
@username='testmail@mail.com',
@password='password',
@mailserver_name = 'mail.google.com'
代码的第二部分(创建数据库配置文件)
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'MailTest',
@description = 'Profile used to send mail'
第三部分代码(将数据库邮件帐户添加到配置文件)
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'MailTest',
@account_name = 'MailTest',
@sequence_number = 1
第四部分代码(授予所有人权限)
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'MailTest',
@principal_name = 'public',
@is_default = 1 ;
第五部分代码(使程序能够发送邮件,而不是出错)
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE
GO
第六部分代码(发送测试邮件)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'MailTest',
@recipients = 'receiver@queryingsql.com',
@subject = 'Mail Test',
@body = 'Mail Sent Successfully',
@body_format = 'text'
我不擅长SQL,但我需要将其作为用户的触发器。 有人可以帮帮我吗?
答案 0 :(得分:0)
我运行了所有与您相同的命令(配置文件名为“ admin”),并且我的msdb.dbo.sysmail_log表仍然为空。我还遵循step 5 in this link,它建议运行以下命令(首先备份注册表)。我在注册表中进行了搜索,以查找UseDatabaseMail和DatabaseMailProfile的位置。但是,该命令不起作用,因此我在注册表中手动更改了值。
USE msdb
GO
EXEC master.dbo.xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.SQLEXPRESS\SQLServerAgent',
N'UseDatabaseMail',
N'REG_DWORD', 1
EXEC master.dbo.xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.SQLEXPRESS\SQLServerAgent',
N'DatabaseMailProfile',
N'REG_SZ',
N'admin'
但是,这也确实发送了我排队的邮件。 This link建议尝试直接运行Databasemail.exe。我搜索了“ C:\ Program Files \ Microsoft SQL Server \ MSSQL13.SQLEXPRESS \ MSSQL \ Binn”中的“数据库邮件”。并以管理员身份运行。我收到错误消息:“无法安装以下功能:.NET Framework 3.5(包括.NET 2.0和3.0)” 成功安装.NET 3.5后,已发送我排队的邮件!