Bagaimana cara menyimpan mengirim Outlook E-mail ke folder selain folder Item Terkirim

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 312105 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini menjelaskan cara untuk mengotomatisasi Microsoft Outlook 2002 pemrograman mengirim pesan e-mail dari Visual FoxPro (VFP) 7.0 dan versi Visual FoxPro, dan memiliki pesan yang disimpan dalam folder selain folder Item Terkirim.

INFORMASI LEBIH LANJUT

VFP pengembang sering menulis aplikasi yang melakukan operasi email massal. Setelah pesan yang dikirim, kadang-kadang diinginkan untuk menyimpan pesan ke folder selain folder Item Terkirim default. Dengan cara ini, pesan yang dikirim oleh aplikasi disimpan terpisah dari lainnya pesan yang dikirim melalui klien yang sama, membuat mereka lebih mudah untuk menemukan kemudian.

Meskipun dimungkinkan untuk pemrograman menentukan folder untuk menyimpan pesan e-mail terkirim (dengan menggunakan konstanta CdoPR_SENTMAIL_ENTRYID CDO), pengaturan diabaikan karena CDO (1.x) perpustakaan keras-kode nilai ditempatkan di bidang PR_SENTMAIL_ENTRYID ke folder Item Terkirim. Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
192083PRB: Pengaturan PR_SENTMAIL_ENTRYID di CDO (1.x) tidak dipertahankan
Anda dapat bekerja di sekitar masalah ini dengan menggunakan COPYTO() metode dari objek pesan e-mail Anda untuk memindahkan pesan ke folder pilihan Anda sebelum dikirim.

Contoh kode di bawah ini membuat salinan pesan sebelum dikirim, sebagai lawan untuk memindahkan atau menyalin pesan setelah dikirim. Kita melakukan ini karena Outlook biasanya tidak mengirim pesan langsung; mereka dapat duduk di Outlook kotak keluar untuk waktu yang singkat. Sebagai hasilnya, kode yang berjalan pada loop yang bergantung pada pesan berada di folder Item Terkirim default mungkin gagal.

Satu-satunya kelemahan untuk pendekatan ini adalah bahwa Anda akan memiliki salinan pesan dalam folder Item Terkirim alternatif bahkan jika pesan tidak berhasil dikirim. Hal ini tidak kekurangan utama, namun, karena orang-orang yang paling sering ingin mempertahankan pesan untuk referensi, bukan sebagai bukti dari pengiriman.

Catatan Kode ini ditulis dan diuji dengan VFP 7.0 dan versi Visual FoxPro. Dengan sedikit modifikasi, itu akan bekerja dengan versi VFP. Diuji dengan Microsoft Outlook 2002 pada komputer yang menjalankan Microsoft Office XP dan Microsoft Office Outlook 2003, tetapi harus juga bekerja dengan Office 2000.

VFP 7.0 kode di bawah ini akan lakukan hal berikut:
  1. Log on ke MAPI.SESI.
  2. Menyusun pesan e-mail baru.
  3. Memindai Anda store(s) pesan untuk ID folder yang Anda tetapkan sebagai folder Item Terkirim alternatif.
  4. Menyalin pesan dalam proses untuk folder Item Terkirim alternatif dan kemudian mengirim pesan.
Untuk menggunakan kode sampel ini, ikuti langkah berikut:
  1. Buka Outlook, membuat folder baru, dan nama itu "My Item Terkirim". Anda dapat membuat folder sebagai subfolder di toko pesan apapun yang Anda sukai.
  2. Salin kode di bawah ini program baru di VFP 7.0.
  3. Simpan dan kemudian jalankan program.
*-----------------------------------
* 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 OBJECT


PUBLIC gcFolderID
gcFolderID = ""

*--    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.ADD


WITH 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.Logoff
RELEASE ALL
CLEAR 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 menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat maupun tersirat, termasuk, namun tidak terbatas pada, jaminan tersirat mengenai keadaan yang dapat diperjualbelikan dan/atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah familiar dengan bahasa pemrograman yang ditunjukkan dan alat-alat yang digunakan untuk membuat dan memperbaiki prosedur. Profesional dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh tersebut untuk menyediakan fungsionalitas tambahan atau membuat prosedur untuk memenuhi kebutuhan spesifik Anda.
Jika Anda memiliki terbatas pengalaman pemrograman, Anda mungkin ingin menghubungi Microsoft Certified Partner atau Microsoft Advisory Services. Untuk informasi lebih lanjut, kunjungi situs Web Microsoft ini:

Microsoft Certified Partner- https://Partner.Microsoft.com/global/30000104

Microsoft Advisory Services- http://support.Microsoft.com/GP/advisoryservice

Untuk informasi lebih lanjut tentang opsi dukungan yang tersedia dan tentang cara menghubungi Microsoft, kunjungi Website Microsoft berikut:http://support.Microsoft.com/default.aspx?scid=Fh;EN-US;CNTACTMS

Properti

ID Artikel: 312105 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
Kata kunci: 
kbcodesnippet kbhowtomaster kboop kbmt KB312105 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:312105

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com