ParaParlando il forum degli iblei

Iniziative dal Forum => Aste, Mercatino e Notizie Utili => Topic aperto da: SC - 02:05:38 am, 23 Settembre 2009

Titolo: Importare i contatti telefonici outlook 2003 in skype e freecall, formato vcard
Inserito da: SC - 02:05:38 am, 23 Settembre 2009
per una mia necessità personale ho deciso di creare un paio di vbs script per poter esportare i contatti di outlook 2003 (en: to export outlook contacts to vcard format file) generalmente sincronizzabili col telefonino in un formato file vcard 3 compatibile con skype e freecall, due dei programmi di telefonia voip molto diffusi

www.skype.com (http://www.skype.com)
www.freecall.com (http://www.freecall.com)

ciascuno script creerà un file di testo nella cartella dove viene eseguito lo script, questo file va poi importato tramite le funzioni di importazione di skype (strumenti-> avanzate->importa...)o di freecall (tools-> archive contacts ->restore...)


il codice è rilasciato sotto licenza gpl 2 come è ,quindi si possono fare tutte le modifiche che si vogliono

codice per esportare i contatti per skype

Codice:
Codice: [Seleziona]
Rem Copyright under GPL v2 Author Salvo Caligiore
Rem Script For To export outlook 2003 contacts in vcard v3 skypeout Format
Rem script per poter esportare i contatti di outlook in un formato vcard compatibile con skype ottenendone contatti skypeout

On Error Resume Next

Const olFolderContacts = 10
Const Home = " - casa"
Const Mobile = " - cell"
Const Business = " - ufficio"
outfile="vcardskypeout.vcf"

Set fso = CreateObject("Scripting.FileSystemObject")

if not fso.FileExists (contatore)Then fso.CreateTextFile (outfile)

Set OggFile = fso.GetFile (outfile)

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")

Set colContacts = objNamespace.GetDefaultFolder(olFolderContacts).Items

Set OggTextStream = OggFile.OpenAsTextStream(2)
For Each objContact In colContacts
    With OggTextStream
 
    If Len(objContact.HomeTelephoneNumber)<>0 Then
    .WriteLine "BEGIN:VCARD"
    .WriteLine "VERSION:3.0"
    .WriteLine "N:" & objContact.FullName & Home
      .WriteLine "X-SKYPE-DISPLAYNAME:" & objContact.FullName & Home
      .WriteLine "X-SKYPE-PSTNNUMBER:" & objContact.HomeTelephoneNumber
      .WriteLine "END:VCARD"
    .WriteLine
End If
If Len(objContact.MobileTelephoneNumber) <> 0 Then
    .WriteLine "BEGIN:VCARD"
    .WriteLine "VERSION:3.0"
    .WriteLine "N:" & objContact.FullName & Mobile
    .WriteLine "X-SKYPE-DISPLAYNAME:" & objContact.FullName & Mobile
    .WriteLine "X-SKYPE-PSTNNUMBER:" & objContact.MobileTelephoneNumber
      .WriteLine "END:VCARD"
    .WriteLine
End If
  If Len(objContact.BusinessTelephoneNumber) <> 0 Then
    .WriteLine "BEGIN:VCARD"
    .WriteLine "VERSION:3.0"
    .WriteLine "N:" & objContact.FullName & Business
    .WriteLine "X-SKYPE-DISPLAYNAME:" & objContact.FullName & Business
    .WriteLine "X-SKYPE-PSTNNUMBER:" & objContact.BusinessTelephoneNumber
.WriteLine "END:VCARD"
    .WriteLine
End If
 
  End With
Next

OggTextStream.Close

MsgBox("Bene file creato con successo col nome " & outfile & " vai su skype->strumenti->avanzate importa contatti da file vcard saluti By SC")

codice per esportare i contatti su freecall


Codice: [Seleziona]
Rem Copyright under GPL v2 Author Salvo Caligiore
Rem Script For To export outlook 2003 contacts in vcard v3 Freecall Format
Rem script per poter esportare i contatti di outlook in un formato vcard compatibile con freecall

On Error Resume Next

Const olFolderContacts = 10
Const Home = " - casa"
Const Mobile = " - cell"
Const Business = " - ufficio"
Const mail =0  Rem 1 se vuoi importare l'indirizzo mail nel file vcard

outfile="freecallvcard.vcf"

Set fso = CreateObject("Scripting.FileSystemObject")

if not fso.FileExists (contatore)Then fso.CreateTextFile (outfile)

Set OggFile = fso.GetFile (outfile)

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")

Set colContacts = objNamespace.GetDefaultFolder(olFolderContacts).Items

Set OggTextStream = OggFile.OpenAsTextStream(2)
For Each objContact In colContacts
    With OggTextStream
   
    .WriteLine "BEGIN:VCARD"
    .WriteLine "VERSION:3.0"
    .WriteLine "N:" & objContact.FullName
    .WriteLine "FN:" & objContact.FullName
      .WriteLine "X-VOIP-USERNAME:" & objContact.FullName
      .WriteLine "X-VOIP-PSTNNUMBER:" & objContact.MobileTelephoneNumber
      .WriteLine "X-VOIP-DISPLAYNAME:" & objContact.FullName
  .WriteLine "X-VOIP-SEX:Unknown"
 
    .WriteLine "BDAY:19000101"
  If mail<>0 Then    .WriteLine "EMAIL:" & objContact.Email1Address
 
  .WriteLine "TEL;HOME:" & objContact.HomeTelephoneNumber
  .WriteLine "TEL;CELL:" & objContact.MobileTelephoneNumber
  .WriteLine "TEL;WORK:" & objContact.BusinessTelephoneNumber
  .WriteLine "TEL;FAX:" & objContact.BusinessFaxNumber
  .WriteLine "END:VCARD"
    .WriteLine
  End With
Next

OggTextStream.Close

MsgBox("Bene. file creato con successo col nome " & outfile & "  saluti By SC")

in realtà in quest'ultimo codice c'è una condizione che determina un errore se il contatto non ha telefonino

P.S. scusate lo stile del codice ma è parecchio che non programmavo , gli script sono allegati al topic (la molletta qua sotto)