xp_findnextmsg (Transact-SQL)

接受输入的邮件 ID 并返回输出的邮件 ID。为了处理 Microsoft SQL Server 收件箱中的邮件,需要将 xp_findnextmsgsp_processmail 配合使用。

注意注意

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

主题链接图标Transact-SQL 语法约定

语法

xp_findnextmsg [ [ @type= ] type ] 
     [ , [ @unread_only= ] 'unread_value' ]
     [ , [ @msg_id= ] 'message_id' [ OUTPUT ] ]

参数

  • [ @type=] type
    基于以下 MAPI 定义的输入邮件类型:

    IP[M|C].Vendorname.subclass

    如果 type 为 NULL,则以 IPM 开头的邮件类型将显示在邮件客户端的收件箱中,并通过 xp_findnextmsg 查找或读取。以 IPC 开头的邮件类型不会显示在邮件客户端的收件箱中,必须通过设置 type 参数来查找或读取。默认值为 NULL。SQL Mail 支持 IPM 和 IPC 邮件类型。

  • [ @unread_only=] 'unread_value'
    指示是否仅考虑未读 (N'TRUE') 邮件。默认值为 N'FALSE',即考虑所有邮件。unread_value 的数据类型为 nvarchar(5)。

  • [ @msg_id=] 'message_id'
    一个输入输出参数,用于指定输入时的邮件字符串和输出时的下一封邮件的字符串。如果输入的 message_id 为 NULL,那么在默认情况下,输出 @msg_id 将是收件箱中最新传递的邮件的 ID。message_id 的数据类型为 varchar(255),默认值为 NULL。

  • OUTPUT
    如果已指定,message_id 将放在输出参数中。如果未指定,则 message_id 将作为单列、单行结果集返回。

返回代码值

0(成功)或 1(失败)

结果集

如果向 xp_findnextmsg 传递有效的邮件 ID,则可返回邮件。

如果 @msg_id 是 NULL,则 xp_findnextmsg 返回以下结果集。

列名

数据类型

说明

Message ID

varchar(255)

下一封邮件的邮件 ID。

注释

除了无效参数以外,所有错误都将记录到 Microsoft Windows 应用程序日志中。

权限

要求具有 sysadmin 固定服务器角色的成员身份,但 EXECUTE 权限可以授予其他用户。不过,出于安全考虑,建议将此存储过程的权限仅授予 sysadmin 固定服务器角色的成员。

示例

以下示例将在搜索下一个邮件 ID(仅限未读邮件)时检索状态。xp_findnextmsg 返回的值将置于局部变量 @message_id 中。

DECLARE @status int, @message_id varchar(255) ;

EXEC @status = xp_findnextmsg @msg_id = @message_id OUTPUT ;