不知大家遇到过这种情况没有,我使用SQL SERVER的xp_sendmail给公司同事发邮件,明明指定收件人为同事的邮箱,但结果却成邮件没有发到同事邮箱,反而发到了自己的邮箱中。不知什么原因,望交流,现在SQL SERVER版的高手都到哪里去了?
没碰到过,我发送时总是成功的,除非收件人填错了。
不太清楚,高手请进!
我不太清楚,你参考一下吧:
xp_sendmail 在 SQL Server 的安全上下文中运行。有效 xp_sendmail 用户可以在管理员安全上下文中访问邮件的附件文件。如果非系统管理员用户必须访问 xp_sendmail,而您希望阻止对附件文件的不安全访问,则系统管理员可以创建一个存储过程,该过程调用 xp_sendmail 并提供所需的功能,但不表现 attachments 参数。此存储过程必须在 master 数据库中定义。然后系统管理员可向必要的用户授予该存储过程的执行权限,但不授予基础 xp_sendmail 过程的权限。
xp_sendmail 向指定收件人发送邮件、查询结果集或附件,并对 query 参数使用绑定连接。SQL 邮件建立的 query 连接不会被发出 xp_sendmail 请求的客户端所控制的锁阻塞。这使 xp_sendmail 更易于在触发器中使用。但是,query 语句不能引用仅在触发器中可用的逻辑 inserted 和 deleted 表。
说明 当邮局和通讯簿位于 MSSQLServer 服务因无足够权限而无法访问的文件共享位置时,试图执行 xp_sendmail 将导致违规访问。
有关使用存储过程调用 xp_sendmail 的更多信息,请参见如何使用 SQL 邮件(Transact-SQL)。
权限
xp_sendmail 的执行权限默认授予 master 数据库中的 db_owner 固定数据库角色成员以及 sysadmin 固定服务器角色成员,但可以授予其他用户。
gz