Primero puedes aprender esta interfaz en la documentación de VBA. Encuentre algunos ejemplos de llamadas C++ a Outlook.
Aquí hay un ejemplo que encontré en línea. Sólo como referencia
#!/usr/bin/env? Big Python
"""
¿Respuesta? ¿Simple? ¿Dirección? ¿Libro? ¿Navegador? ¿Rechazar? ¿Convertirse? ¿Eso? ¿Profundidad? ¿Acerca de
Su ?Intercambio? ¿Prospecto? ¿Qué? ¿Contactos? ¿Qué? ¿Mensaje? y
Colaboración",?"¿Colaboración? ¿datos? Objeto ",?" CDO? ¿Para
Windows? 2000",?"CDO? ¿para qué? ¿Windows? 2000",?"Mensajería",
"Concepto",?"CDO? ¿Mensajería? COM? Interfaz ",?" que? IMessage
COM? Interfaz ",?"¿Mensaje? Propiedades".
Qué lástima, ¿no todas las propiedades? ¿Sí? ¿Siempre? disponibles.
¿Exactamente? ¿Ese? ¿gen_py'? directorio? ¿dentro? ¿paquetes de sitio? ¿Mayo?
¿Respuesta? ¿Qué pasa con la interfaz?
p>
enum?{
olTXT?=?1,
olTemplate ? /p>
olMSG?=?3,
Oldock?=?4,
olHTML?=?5,
¿Fuera de tarjeta?= ?6,
Orf Carl?=?Seven
}?OlSaveAsType? ¿Por defecto? p>¿Otros? ¿Por quién?
>
¿Importar? win32com.client
¿Importar? sistema,? Sistema operativo
#?¿Este? ¿Sí? ¿necesidad? ¿Antes? ¿a nosotros? ¿Puedo? ¿incluso? ¿decir? ¿Acerca de? no lo mismo? enumeración? valores.
¿Esperando con ansias? =?win32 com cliente . despacho("Outlook.Application")
¿Clase? Ver:
"a?view?on?namespace.
def?__init__(self, encoding):
"inicialización? ¿eso? ¿Punto de vista? ¿Qué usar? ¿respuesta? ¿personaje? Codificación.
¿Autocodificación? =?Codificación
¿Clase? Vista de Consola (View):
"Una vista estilo consola.
"
¿Mostrar asignación de atributos de espacio de nombres?=?{
win32 com . client . constantes . carpeta ol?:
("+",?"Nombre " ),
win32 com.client.constants.olcontact?:
(">,?"email1address"),
win32 com . client . constantes . ¿Olmail? :
(" >,?"Asunto"),
¿No?:
("?",?"Nombre")
}
def?__init__(self, encoding,?page_width=80,?page_limit=20):
"""
¿Inicialización? ¿eso? ¿Punto de vista? ¿Qué usar? ¿respuesta? ¿personaje? ¿codificación? Entonces qué. ¿eso? ¿Opcional
'Ancho de página'? Entonces qué. 'límite_página'.
"""
Ver.__init__(self, codificación)
self.page_width?=?Ancho de página
self.page_limit ? =?Límite de páginas
def? update_status(self, contador,?max_value):
"¿Actualizar? ¿respuesta? ¿estado? ¿índice? ¿Qué usar? ¿eso? ¿Dado? ¿encimera? ¿valor? Entonces qué. valor máximo.
¿último_contador? =?max(contador?-?1,?0)
Último_ancho? =?int((last_counter?*?self.page_width)?/?valor máximo)
¿Ancho? =?int((Contador?*?self.page_width)?/?Valor máximo)
sys.stdout.write(" . "?*?(ancho?-?last_width))
p>¿Y si? ¿encimera? ==?Valor máximo:
sys.stdout.write("\n ")
def? Error (auto):
sys.stdout.write("!")
def? show_namespace(self, elemento):
"¿mostrar?ese?espacio de nombres,?¿respuesta?dada?lista?de?elementos'",
si? len(artículo)? >? self.page_limit:
¿Imprimir? "!",?"¿Espectáculo? ¿Ese? ¿El primero",? self.page_limit,? "¿Artículos? Sólo."
¿Para qué? ¿valor? ¿existir? items[:self.page_limit]:
Pruebe:
Decoración,? ¿propiedad? =?self .show_namespace_property_mapping[valor. Categoría]
¿Excepto? Error crítico:
Decoración,? ¿propiedad? =?self . mostrar _ espacio de nombres _ propiedad _ mapeo[ninguno]
¿Imprimir? proporcionar,? self.get_property(valor,?propiedad). Codificación (autocodificación)
def? get_property(self,?object,?property,?default= " ":
Pruebe:
#?Nota:?Negro!
Si?property ? ==?"Sendon":
Devolver getattr(objeto, atributo).
Formato()
¿Volver? getattr(objeto, atributo)
¿Excepto? Error de propiedad:
¿Regresión? Valor predeterminado del sistema
¿Clase? Extractor:
"¿Una?Clase?Segundo?Para?Extraer?El?Elemento/Objeto?De?Carpeta.
Extract_Type_Map?= ?{
win32 com cliente .constantes .ol cita?:
(win32 com .cliente .constantes .olvcal, ? "VC"),
win32 com cliente . ¿contacto?:
(win32 com . client . constantes . tarjeta olv,? "vcf"),
win32 com constantes . >(win32 com. cliente. constantes. ol txt,? "txt"),
¿No?:
(win32 com. cliente. constantes .ol txt,? " txt " )
}
def? __init__(self, view=None):
"¿Inicialización? ¿eso? ¿Extractor? ¿Qué usar? ¿eso? ¿Opcional? Ver "."
self.view? =?Perspectiva
def? extraer(self,?item,?filename):
"Extraer?ese?proyecto?dado?¿dónde?respuesta?archivo?con?ese?nombre?de?archivo?dado"."
Total_Quantity?=?len(items)
Para? range(0,?total):
Valor ]
Prueba:
Guardar como tipo, ? sufijo =?self .extract_type_mapping[categoría de valor]
Error de clave:
Guardar como tipo,? >
Pruebe:
Valor. join(nombre de archivo, str(i)?+?"."?+?suffix),
Guardar como tipo)
¿Excepto? Error de atributo:
si? Vista propia:
self.view.error()
¿excepto? com_error:
si? Vista:
self.view.error()
Si? Vista propia:
self.view .update_status(i?+?1,?total)
¿Clase? Explorador:
"A?" ¿clase? ¿mantener? ¿eso? ¿estado? ¿de? explorar. "
def?__init__(self, view=None):
global?view
self actual?=?self.ns?=?outlook.GetNamespace ("MAPI")
self.view? =?view
self._get_namespace()
def arriba(self):
"¿Promocionar? ¿convertirse en? ¿eso? ¿padres? ¿Carpeta? ¿devolver? ¿si? ¿él? Era. Es posible. ”
Si?self-current?!=?self-ns:
self-current?=?self.current.parent
self.
_get_namespace()
¿Volver? 1
¿Volver? 0
definición? abajo(self, nombre):
"""
¿Abajo? ¿en? esa? carpeta? ¿con qué? ¿ese? nombre? dado? ¿volver? ¿si? p>
¿Es posible?
"""
¿Si? self.choices.has_key(nombre):
¿Actualidad propia? =?self.choices[nombre]
Auto. _get_namespace()
¿Volver? 1
¿Volver? 0
definición? get_items(self):
"¿Devolver? ¿Lista? de? elementos? en? la? carpeta? actual.
¿Devolver? elementos propios
def? getchoice(self):
"¿regresar?" ¿respuesta? ¿diccionario? ¿Cartografía? ¿nombre? ¿A dónde ir? objeto. "
¿Volver? Auto-selección
def?_get_namespace(self):
"""
¿Un? ¿interno? ¿método? ¿Cual? ¿refrescar? ¿eso? ¿actual? espacio de nombres.
"""
Auto-selección?self-item?=?get_namespace(self.current,?self-view)
def?get_namespace(espacio de nombres , ver =Ninguno):
"""
¿Obtener? ¿eso? ¿contenido? ¿de? ¿eso? ¿Dado? espacio de nombres',? ¿devolver? ¿respuesta? ¿diccionario? ¿Acerca de
elección? (¿apropiado? ¿para qué? carpeta)? Entonces qué. ¿respuesta? ¿Lista? ¿de? ¿cosa? (¿apropiado? para
mensaje).
"""
d?=?{}
l?=?[]
#?¿Primero? ¿Intentar? ¿Qué? ? ¿Qué? ¿Qué?
Espera
¿nombre_objeto? =?Atributo[0]
¿Subobjeto? getattr(espacio de nombres, nombre del objeto)
Error de atributo:
¿Qué? ¿Qué?
¿Qué? >¿Qué? 1. disparo(subobjeto)
¿para qué? rango(1,?número_total?+?1):
nombre_campo ?=?propiedad[1]? ?el?diccionario?if?
?
l.append(subobject[i])
¿Si? nombre_campo ¿No?
d[getattr] (subobjeto[i],? nombre_campo)]?=?Subobjeto[i]
¿Excepción?
Aprobado
#?Posición?
Si? ver:
view.update_status(i,? total)
¿Devolver?l
def
#? obtener?codificación?si?
¿Y si? len(sys.argv)? >? 2:
¿Codificación? =?sys.argv[2]
De lo contrario:
¿Codificación? =?"UTF No. 8"
¿Opinión? =?Vista de consola (codificación)
¿Explorador? =?Navegador(ver)
¿Cuándo? 1:
#?Consejos? ¿eso? usuario.
¿Imprimir? "-"?*?60
ver . show _ namespace(explorer . get _ items())
¿Imprimir? "-"?*?60
¿Imprimir? "〖美〗p? ¿Propio? ¿[E]xtract? [¿Q]uit? [¿Ayuda? ¿Y luego qué?& ltReturn & gt!"
¿Imprimir? "-"?*?60
s? =?entrada sin formato(). banda(). Upper()[0]
#?¿Descubrir? ¿eso? ¿Está bien? acción.
¿Y si? ¿s? ==?"U":
#?Levántate.
explorer.up()
¿Elif? ¿s? ==?"D":
#?¿Preguntar? ¿para qué? ¿eso? ¿Carpeta? ¿A dónde ir? Ingresar.
¿Imprimir? "¿Bajar? Se convierte en:"
¿Nombre? =?entrada sin procesar()
si? ¿No es así? explorer.down(nombre):
¿Imprimir? "¿No? ¿Así? Objetivo."
¿Elif? ¿s? ==?"E":
#?¿Preguntar? ¿para qué? ¿eso? ¿documento? ¿A dónde ir? ¿extracto? respeto.
¿Imprimir? "¿Extracto? Destinatario:"
¿Nombre del archivo? =?Entrada sin formato()
¿Imprimir? "Extrayendo..."
¿Extractor? =? extractor(vista)
extractor . extraer(explorador . get_items(), ? nombre de archivo)
elif? ¿s? ==?"Preguntar":
¿Imprimir? "Saliendo..."
¿Subir? Salida del sistema
¿Elif? ¿s? ==?"H":
¿Imprimir? "¿Escribir? ¿Eso? ¿d? ¿Clave? ¿Entonces? & ltReturn & gt? ¿Dónde? ¿Entrar? ¿A? Carpeta.
¿Imprimir? "¿Dar? ¿eso? ¿exacto? ¿Carpeta? ¿nombre? ¿cuando? ¿pista? Entonces qué. ¿noticias? & ltReturn & gt."
¿Imprimir?" ¿eso? ¿tú? ¿llave? ¿Entonces qué? <Volver>? ¿A dónde ir? mudarse de lugar? ¿arriba? ¿uno? nivel. "
¿Imprimir?" ¿eso? q? ¿llave? ¿Entonces qué? <Volver>? ¿A dónde ir? Abandonar. "
¿Imprimir?" ¿eso? h? ¿llave? ¿Entonces qué? <Volver>? ¿A dónde ir? ¿leer? ¿este? aquí vamos de nuevo. "
¿Imprimir?" ¿eso? ¿mi? ¿llave? ¿Entonces qué? <Volver>? ¿A dónde ir? ¿extracto? artículo. "
¿Imprimir? "¿Dar? ¿respuesta? ¿Nombre del archivo? ¿cuando? ¿pista? Entonces qué. ¿noticias? & ltReturn & gt."
Imprimir
¿Imprimir? "¿Está bien? ¡suerte! "
En caso contrario:
¿Imprimir? "¿No? ¿Como esto? Orden. "
Si?__name__?==?" __main__ "
main()
#?vim:?tabstop=4?expandtab?shiftwidth=4