Como salvar enviados por email do Outlook para uma pasta diferente da pasta Itens enviados

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 312105
Sumário
Este artigo descreve como automatizar o Microsoft Outlook 2002 para enviar emails por meio de programação do Visual FoxPro (VFP) 7.0 e versões posteriores do Visual FoxPro e salvou as mensagens em uma pasta diferente na pasta Itens enviados.
Mais Informações
Os desenvolvedores para Visual FoxPro geralmente escrevem aplicativos que executam operações de email em massa. Após as mensagens são enviadas, às vezes é desejável para salvar as mensagens em uma pasta diferente da pasta Itens enviados padrão do. Dessa forma, as mensagens enviadas pelo aplicativo são mantidas separadas das outras mensagens enviadas por meio do mesmo cliente, facilitando sua localização posteriormente.

Embora seja possível especificar uma pasta na qual salvar os emails enviados (usando a constante CdoPR_SENTMAIL_ENTRYID CDO) por meio de programação, a configuração é ignorada porque os CDO (1.x) biblioteca rígido-códigos o valor colocado no campo PR_SENTMAIL_ENTRYID para a pasta Itens enviados. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
192083PROBLEMA: Configuração PR_SENTMAIL_ENTRYID em CDO (1.x) não é retida
Você pode contornar esse problema usando o método COPYTO() de seu objeto de mensagem de email para realocar a mensagem para uma pasta de sua escolha antes de enviá-lo.

O código de exemplo a seguir faz uma cópia da mensagem antes de enviá-lo, como contrário para mover ou copiar a mensagem depois que ele for enviado. Fazemos isso porque as mensagens do Outlook normalmente não são enviadas imediatamente; eles podem sentar-se na caixa da saída do Outlook por um curto período de tempo. Como resultado, o código em execução em um loop que se baseia em uma mensagem que está sendo localizada na pasta Itens enviados padrão pode falhar.

A única desvantagem dessa abordagem é que você terá uma cópia da mensagem na sua pasta Itens enviados alternativa mesmo se a mensagem não foi enviada com êxito. Isso é não uma grande desvantagem, no entanto, porque as pessoas com mais freqüência desejarem manter as mensagens enviadas para referência, não como prova de entrega.

Observação Esse código foi escrito e testado para Visual FoxPro 7.0 e versões posteriores do Visual FoxPro. Com pequenas modificações, ele funcionará com qualquer versão para Visual FoxPro. Ele foi testado com o Microsoft Outlook 2002 em um computador que está executando o Microsoft Office XP e Microsoft Office Outlook 2003, mas também deve trabalhar com o Office 2000.

O código para Visual FoxPro 7.0 abaixo fará o seguinte:
  1. Faça logon no MAPI.SESSION.
  2. Redigir uma nova mensagem de email.
  3. Verifica seu store(s) mensagem para a identificação da pasta que você especificar como a pasta Itens enviados alternativa.
  4. Copiar a mensagem em andamento para a pasta Itens enviados alternativa e, em seguida, envie a mensagem.
Para usar este código de exemplo, execute estas etapas:
  1. Abra o Outlook, crie uma nova pasta e nomeie-a "Meus Itens enviados". Você pode criar a pasta como uma subpasta em qualquer armazenamento de mensagens que você gosta.
  2. Copie o código abaixo para um novo programa no 7.0 para Visual FoxPro.
  3. Salve e em seguida, execute o programa.
*-----------------------------------* ABSTRACT: This sample code sends an e-mail message to the address*           you specify. It then saves this message to a folder other*           than the default Sent Items Outlook folder.**           To use this code, create a new folder in Outlook named*           "My Sent Items". You can later rename this folder to anything*           you like, provided that you change the 1st #DEFINE*           below accordingly.*-----------------------------------#DEFINE New_Sent_Folder              "My Sent Items"#DEFINE CdoDefaultFolderSentItems    3*--    Define our variables.LOCAL loSession AS "mapi.session", ;	loMessage AS OBJECT, ;	loRecip AS OBJECT, ;	loSentItems AS OBJECT, ;	loSentMsg AS OBJECT, ;	lcToWho AS STRING, ;	lcSampleAddress AS STRING, ;	lcNewSentFolderID AS STRING, ;	loMsgCopy AS OBJECTPUBLIC gcFolderIDgcFolderID = ""*--    Set up the e-mail message.lcSampleAddress = "trevorh@MICROSOFT.COM"lcToWho = INPUTBOX("What address do you want to send the sample to?", + ;	"Sample Message", lcSampleAddress)*--    Cancel if an e-mail address is not specified.IF EMPTY(lcToWho)	MESSAGEBOX("Sample Canceled", "", 0, 3000)	RETURN .F.ENDIF*--    Logon to MAPI and make the message.loSession = CREATEOBJECT("mapi.session")loSession.Logon()lcNewSentFolderID = FindNewFolder(loSession)loMessage = loSession.Outbox.MESSAGES.ADDWITH loMessage	.Subject = "Test Message"	.TEXT = "Test Body"	loRecip = .Recipients.ADD	loRecip.NAME = ALLTRIM(lcToWho)	loRecip.Resolve	.UPDATE()*--	Copy the msg to our alternate Sent Items folder.	loMsgCopy = .CopyTo(lcNewSentFolderID)	loMsgCopy.UPDATE()*--	Passing .F. here to the SEND() method prevents a copy*--	of this message being saved to the default Sent Items folder.	.SEND(.F.)ENDWITH*--    Clean up.loSession.LogoffRELEASE ALLCLEAR ALL*~~~~~~~~~~~~~~~~~~~~~~~~~FUNCTION FindNewFolder(lpoSession AS OBJECT)	LOCAL loInfoStores AS OBJECT, ;		loRootFolder AS OBJECT, ;		liStoreCnt AS INTEGER*-- Get an obj reference to the message stores in Outlook.	loInfoStores = lpoSession.InfoStores*-- Walk through the message store(s) (except any*-- Public Folders) looking for a folder with the same name*-- as the "New_Sent_Folder" constant.	FOR liStoreCnt = 1 TO loInfoStores.COUNT		IF !("PUBLIC FOLDERS" $ UPPER(loInfoStores.ITEM(liStoreCnt).NAME))			loRootFolder = loInfoStores.ITEM(liStoreCnt).RootFolder			WalkSubFolders(loRootFolder)			IF !EMPTY(gcFolderID)				RETURN gcFolderID			ENDIF		ENDIF	ENDFOR*~~~~~~~~~~~~~~~~~~~~~~~~~FUNCTION WalkSubFolders(lpoFolder AS OBJECT)	IF !EMPTY(gcFolderID)		RETURN	ENDIF	IF UPPER(lpoFolder.NAME) = UPPER(New_Sent_Folder)		gcFolderID = loFolder.ID		RETURN	ENDIF	LOCAL loFolder AS OBJECT	FOR EACH loFolder IN lpoFolder.Folders		IF loFolder.Folders.COUNT > 0			WalkSubFolders(loFolder)			IF !EMPTY(gcFolderID)				EXIT			ENDIF		ELSE			IF UPPER(loFolder.NAME) = UPPER(New_Sent_Folder)				gcFolderID = loFolder.ID				EXIT			ENDIF		ENDIF	NEXT				
Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104

Comunicado de Microsoft Services - http://support.microsoft.com/gp/advisoryservice

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 312105 - Última Revisão: 11/23/2006 08:13:40 - Revisão: 3.5

Microsoft Visual FoxPro 7.0 Professional Edition, Microsoft Visual FoxPro 8.0 Professional Edition, Microsoft Visual FoxPro 9.0 Professional Edition, Microsoft Outlook 2002 Standard Edition, Microsoft Office Outlook 2003

  • kbmt kbcodesnippet kbhowtomaster kboop KB312105 KbMtpt
Comentários