¿Cómo se puede crear una aplicación que lea correos electrónicos de un archivo de texto y actualice automáticamente la lista de contactos de Gmail?

Como lo quieres:

Aquí está el código completo. Está escrito en python.
Tengo python2.7 instalado en la máquina win7 de 64 bits.

  sistema de importación
 importar getopt
 importar getpass
 átomo de importación
 importar gdata.contacts.data
 importar gdata.contacts.client


 clase ContactsSample (objeto):


   def __init __ (auto, correo electrónico, contraseña):
    
     self.gd_client = gdata.contacts.client.ContactsClient (fuente = '')
     self.gd_client.ClientLogin (correo electrónico, contraseña, self.gd_client.source)

  
   def CreateMenu (self):
   
     name = raw_input ('Ingrese el nombre del contacto:')
     notes = raw_input ('Ingrese notas para el contacto:')
     primary_email = raw_input ('Ingrese la dirección de correo electrónico:')

    new_contact = gdata.contacts.data.ContactEntry (name = gdata.data.name (full_n ame = gdata.data.FullName (text = name)))
     new_contact.content = atom.data.Content (text = notes) 
     new_contact.email.append (gdata.data.Email (address = primary_email, 
         primario = 'verdadero', rel = gdata.data.WORK_REL))
     entry = self.gd_client.CreateContact (new_contact)

     si entrada:
        
       print '\ nContacto creado con éxito'
       Datos crudos('')
     más:
       imprima 'Error de carga'.

  

   def Ejecutar (auto):
     tratar:
       mientras cierto:
         self.CreateMenu ()
         regreso

     excepto KeyboardInterrupt:
       imprima '\ nAdiós'.
       regreso


 def main ():

 
   tratar:
     opts, args = getopt.getopt (sys.argv [1:], '', ['user =', 'pw ='])
   excepto getopt.error, msg:
     sys.exit (2)

   usuario = ''
   pw = ''
 
   para la opción, arg en opts:
     si la opción == '--usuario':
       usuario = arg
     Opción elif == '--pw':
       pw = arg

   mientras no usuario:
     imprimir 'Crear contacto de gmail'
     user = raw_input ('Ingrese su nombre de usuario:')
   mientras no pw:
     pw = getpass.getpass ()
     si no pw:
       print 'La contraseña no puede estar en blanco'.


   tratar:
     sample = ContactsSample (usuario, pw)
   excepto gdata.client.BadAuthentication:
     print 'Credenciales de usuario no válidas dadas'.
     regreso

   sample.Run ()


 if __name__ == '__main__':
   principal()

Nota :
Este código solo crea nuevos contactos en su cuenta de gmail.
No leerá contactos de ningún archivo de texto. Esa es la parte más fácil. Realice los bucles necesarios y los códigos de lectura de archivos.

Fuentes:
Contactos API v3 – Desarrolladores de Google

Módulos:
Página en uci.edu, cmd: easy_install gdata o Python Package Index

Hay algunas formas de hacerlo.

1. Para una aplicación solo para Mac, mi forma favorita sería Xcode ya que su API de datos de Google está extremadamente bien integrada (GDataObjCIntroduction – gdata-aimc-client – Introducción para desarrolladores de Objective-C – API de datos de Google Objective-C Client Library – Google Project Hosting). Sin embargo, Xcode requiere mucho trabajo para empezar.

Ventaja: aplicación optimizada de tamaño pequeño, IDE disponible
Desventaja: difícil de codificar, si no hay mucha experiencia, el objetivo del lenguaje c, necesita una Mac

2. La segunda forma sería cuando Hrishikesh respondió para crear un código simple de Python usando la API de Google.

Ventaja: aplicación optimizada de tamaño pequeño
Desventaja: difícil de solucionar el resto de las características sin un IDE

3. La tercera forma sería la más fácil (especialmente si no tiene mucha experiencia en el desarrollo de aplicaciones: Uso de Unity3D. Estoy bastante seguro de que tienen una API de contactos de lectura / escritura (y probablemente también contactos de Google).

Ventaja: fácil, puede usar c #, javascrip o boo (similar a python), IDE increíble y fácil, increíble comunidad de desarrolladores, puede exportar fácilmente la aplicación a iOS y Android más tarde, si lo desea
Desventaja: aplicación de gran tamaño, documentación para contactos no disponible (el resto será mucho más fácil)

Gracias por el A2A.
Google proporciona amplias API para que las aplicaciones del cliente utilicen sus servicios. En su caso, esto es exactamente lo que necesita:

Contactos API v3 – Desarrolladores de Google

También tienen documentación exhaustiva para cada una de sus API. Leerlos revelará más detalles.
También tenemos varias interfaces para acceder a los datos de Google desde el tipo de idioma de la aplicación cliente que elija utilizar. Eso podría facilitar las cosas. por ejemplo, generalmente usamos Zend_Gdata para PHP. Aquí está el enlace :
Introducción – Zend_Gdata – Zend Framework

Del mismo modo, elija el suyo según su preferencia de idioma.

Sí, tendrías que usar una API de Google. Google tiene una API para crear nuevos contactos: Contactos API v3 – Google Developers

Entonces, los pasos generales del programa serían:

1. Seleccione el archivo de texto para abrir
2. analizar el archivo de texto, extraer cada mensaje de correo electrónico, analizar el mensaje de correo electrónico. Para analizar el mensaje de correo electrónico, puede utilizar un analizador de correo electrónico de código abierto como Apache Tika (Formatos de documentos admitidos) o muchas otras bibliotecas de código abierto.
3. Extraiga las direcciones de correo electrónico en la línea Para:.
4. Use la API de contactos de Google para verificar si existe un contacto con esa dirección de correo electrónico.
5. Si NO existe un contacto con esa dirección de correo electrónico, cree uno.

Puede escribir una aplicación de escritorio para hacer esto en casi cualquier idioma compatible con la combinación de la API de Google (que usa HTTP) y el analizador de correo electrónico que elija. Por supuesto, soy parcial a Java. 🙂

¡Buena suerte!

En primer lugar gracias por el A2A.

Ahora supongo que está trabajando en Windows y tiene el “correo electrónico” real como un archivo de texto. Primero debe convertirlo a un archivo csv (valores separados por comas). Para eso usa este Email Extractor. Tomará algunos delimitadores como entrada y le dará un archivo de texto de solo contactos (puede personalizar la salida para que sea un csv). Luego siga las instrucciones aquí Importar contactos como un archivo CSV.
Pero en la pregunta ha mencionado que los tiene como una hoja de cálculo. No estoy seguro de qué tipo de indexación hiciste para encajar en el cuerpo del correo electrónico. Si quiere decir que solo tiene los contactos como una hoja de cálculo, ábralo en Excel y simplemente “guarde como” el archivo en formato CSV. Si tiene el cuerpo del correo electrónico también en la hoja de cálculo, es probable que desee eliminar la columna del cuerpo en Excel. Después de haber creado un archivo CSV, simplemente haga esto Importar contactos como un archivo CSV.

Creo que tendrá que usar la API de correo de Google y la API de contactos de Google.
Leer un archivo es bastante fácil en Python. Puede leer los correos electrónicos línea por línea.
Use una expresión regular para verificar si los correos electrónicos son válidos.
Obtenga estos correos electrónicos en una lista y use la API de contactos de Google para crear contactos – consulte
https://developers.google.com/go

More Interesting

Al contratar a un desarrollador junior, ¿qué tiene prioridad: cartera, conocimiento de un sistema o versatilidad?

¿Es bueno aprender herramientas de flujo de trabajo / BPM para un desarrollador / codificador con más de 5 años de experiencia?

¿Qué consejo tienes para un estudiante de ingeniería de software de segundo año? ¿En qué lenguajes de programación debería centrarme? ¿Cuál es la mejor manera de dominar un lenguaje de programación?

Ciencia de datos: ¿Cómo se compara la distribución de inteligencia de los científicos de datos con la de los ingenieros de software?

Trabajé como ingeniero de software durante cinco años y he tenido una brecha profesional de cinco años. ¿Qué debo hacer para conseguir un trabajo ahora?

Cómo bloquear usuarios que cambian su dirección IP o usan un proxy

Cómo convertirse en un desarrollador de software realmente malo

¿Es un servidor una computadora o simplemente un software de computadora?

¿Qué significa descifrar un software?

Como desarrollador de software femenino, ¿qué te interesó en la codificación y cómo empezaste?

¿Aproximadamente cuántos ingenieros de software hay en el área metropolitana de Seattle? ¿'Ingeniero de software' puede definirse como cualquier persona con un título de CS que trabaje dentro de la ingeniería en un contribuyente individual o capacidad de liderazgo?

Como programador inexperto, verde, novato y aficionado, ¿cómo sé si mi código es incorrecto / hay una mejor solución, a pesar de que funciona correctamente?

¿Los programadores o programadores competitivos rápidos generalmente usan esta posición de manos?

¿Cuáles son las certificaciones ideales para profesionales de TI o ingenieros de software?

¿Cuál es la diferencia entre los diagramas de flujo de datos de nivel 0, nivel 1 y nivel 2?