数据库邮件无法发送电子邮件

数据库邮件无法发送电子邮件

我正在尝试在 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。请查看这个博客

答案2

此类事情失败的原因有很多。遗憾的是,您收到的日志不够详细,无法追踪确切原因。我怀疑这里的情况是邮件中的“发件人:”地址配置不正确。大多数邮件程序都要求收件人:或发件人:地址位于本地域列表(例如“gmail.com”)中,并且不会接受没有此地址的邮件。因此,如果您的邮件来自“[电子邮件保护]“并正在发送至”[电子邮件保护]“但是通过本地 ISP 的邮件程序转发时,ISP 的邮件程序将拒绝该消息。如果您可以配置经过身份验证的 SMTP,则可以绕过这种事情。

相关内容