IMessage::SubmitMessage

适用于:Outlook 2013 | Outlook 2016

保存消息的所有属性,并将消息标记为已准备好发送。

HRESULT SubmitMessage(
  ULONG ulFlags
);

参数

ulFlags

[in]用于控制如何提交消息的标志的位掩码。 可以设置以下标志:

FORCE_SUBMIT

MAPI 应立即提交邮件。 此标志当前未使用。

返回值

S_OK

调用成功,并返回了预期的值。

MAPI_E_NO_RECIPIENTS

邮件的收件人表为空。

备注

IMessage::SubmitMessage 方法将消息标记为已准备好传输。 MAPI 按标记为发送的顺序将消息传递到基础消息系统。 由于此功能,消息可能会在消息存储中保留一段时间,然后基础消息传送系统才可对此负责。 目标接收顺序在基础消息传送系统的控制下,不一定与发送消息的顺序相匹配。

针对实现者的说明

调用消息的 IMAPIProp::SaveChanges 方法进行保存,然后检查消息的PR_MESSAGE_FLAGS (PidTagMessageFlags) 属性。 如果设置了MSGFLAG_RESEND标志,请调用 IMAPISupport::P repareSubmitPrepareSubmit 更新重新发送邮件中所有 收件人的收件人 类型和PR_RESPONSIBILITY (PidTagResponsibility) 属性。

给调用方的说明

当 SubmitMessage 返回时,指向邮件及其关联的子对象邮件、文件夹、附件、流、表等的所有指针不再有效。 MAPI 不允许对这些指针执行任何进一步操作,但调用其 IUnknown::Release 方法除外。 MAPI 设计为,在调用 SubmitMessage 后,应释放消息和所有关联的子对象。 但是,如果 SubmitMessage 返回指示缺少或无效信息的错误值,则消息将保持打开状态,并且指针仍然有效。

若要取消发送操作,请在提交消息之前获取并存储指向消息 PR_ENTRYID (PidTagEntryId) 属性的指针。 由于邮件的条目标识符在提交邮件后失效,因此在调用 SubmitMessage 之前必须保存它。 若要取消发送,请将 lpEntryId 参数指向此条目标识符并调用 IMsgStore::AbortSubmit

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
FolderDlg.cpp
CFolderDlg::OnSubmitMessage
MFCMAPI 使用 IMessage::SubmitMessage 方法提交所选邮件。

另请参阅

IMsgStore::AbortSubmit

IMessage : IMAPIProp

MFCMAPI 代码示例