Compartilhar via


Enviando uma mensagem

Aplica-se a: Outlook 2013 | Outlook 2016

Quando estiver pronto para enviar uma mensagem, chame o método IMessage::SubmitMessage . SubmitMessage coloca a mensagem na fila de saída e define o sinalizador MSGFLAG_SUBMIT na propriedade PR_MESSAGE_FLAGS (PidTagMessageFlags) da mensagem.

O provedor do repositório de mensagens, se estiver fortemente acoplado a um provedor de transporte, fornecerá a mensagem diretamente ao transporte que o entrega ao sistema de mensagens. Se não estiver bem acoplado, o provedor do repositório de mensagens informará ao spooler MAPI que a fila de saída foi alterada e o spooler MAPI transferirá a mensagem para um provedor de transporte apropriado.

Se você permitir que os usuários cancelem uma operação de envio, chame IMsgStore::AbortSubmit para implementar esse recurso. AbortSubmit remove a mensagem da fila de saída. Os usuários podem impedir que um envio aconteça até que a mensagem seja dada ao sistema de mensagens subjacente.

Se SubmitMessage retornar MAPI_E_CORRUPT_DATA, suponha que os dados enviados agora serão perdidos. Antes de tentar enviar uma segunda vez, reestime a mensagem chamando IMAPIProp::SetProps e IMAPIProp::SaveChanges. Exiba um erro para o usuário se essas chamadas IMAPIProp falharem ou se o SubmitMessage falhar uma segunda vez.

Após uma chamada bem-sucedida para SubmitMessage, libere qualquer memória alocada para a lista de destinatários e libere a mensagem e seus anexos. Depois que uma mensagem é enviada, o MAPI não permite mais operações nos ponteiros desses objetos. A única exceção é chamar IUnknown::Release. Nenhuma outra chamada é permitida porque muitos provedores de repositório de mensagens invalidam identificadores de entrada para mensagens enviadas.