我正在尝试在 ms sql 2005 中设置数据库邮件。我已设置,但每次我尝试通过他们的电子邮件测试器发送消息时都会失败,并且我收到此消息。
日期 2010 年 7 月 7 日上午 10:54:12 日志数据库邮件(数据库邮件日志)
日志 ID 48 进程 ID 2148 邮件项目 ID 23 最后修改时间 7/7/2010 10:54:12 AM 最后修改者 sa
消息由于邮件服务器故障,无法将邮件发送给收件人。(使用帐户 1 发送邮件(2010-07-07T10:54:11)。异常消息:无法将邮件发送到邮件服务器。(发送邮件失败。))
我不明白为什么。我正在使用我的 isp smtp,它曾经与数据库邮件一起工作过一小段时间。我甚至通过 cmd 提示符 ping 了我的 smtp 服务器,我可以访问它。所以我不明白为什么它不起作用。
我甚至尝试过托管公司的 smtp 和 gmail smtp。但总是收到相同的消息。
当我尝试 Km_ 提供的教程时,我得到了
1) Exception Information =================== Exception Type: System.NullReferenceException Message: Object reference not set to an instance of an object. Data: System.Collections.ListDictionaryInternal TargetSite: Microsoft.SqlServer.Management.SqlIMail.Server.Objects.Account GetAccount(Int32) HelpLink: NULL Source: DatabaseMailEngine StackTrace Information =================== at Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.DataAccessAdapter.GetAccount(Int32 accountID) at Microsoft.SqlServer.Management.SqlIMail.Server.DataAccess.SessionManager.GetAccount(Int32 accountID) at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateSendMailCommand(DBSession dbSession) at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandFactory.CreateCommand(DBSession dbSession) at Microsoft.SqlServer.Management.SqlIMail.Server.Controller.CommandRunner.Run(DBSession db) at Microsoft.SqlServer.Management.SqlIMail.IMailProcess.ThreadCallBack.MailOperation(Object o)
答案1
数据库邮件选项是否已打开?如果没有,请使用此脚本并确保它已打开
sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'show advanced', 0
GO
RECONFIGURE
GO
还要确保端口 25 已打开。如果您使用的是 Gmail,则可能必须使用端口 587。请查看这个博客