Ab Outlook 2007 hat Microsoft das Vcard-Format seinen eigenen Bedürfnissen angepasst und entsprechend erweitert. Diese Erweiterungen sind jedoch nicht vcf-konform und müssen vor einem Import entfernt werden
Es handelt sich hierbei also nicht um ein Exchange-Problem sondern eher um ein Outlook-Problem. Leider ist mir kein anderer Mailclient bekannt und somit bleiben dir 2 Möglichkeiten:
Entweder den Exchange-Account auf deinem SGS2 einbinden oder Outlook anpassen per VBA-Script kannst du Outlook dazu bewegen die Visitenkarten wieder vcf-Konform zu machen...
Hier hab ich nen fertigen VBA-Script gefunden:
Option Explicit
'=========================================================================
' Exportiert Vcards ohne Outlookzusatz
' (c) Peter Marchert -
http://www.outlook-stuff.com/' 2011-01-23 Version 1.0.0
'=========================================================================
Public Sub ExportToVCF()
'=====================================================================
' Exportiert Kontakte als VCF-Datei
'=====================================================================
Dim objFolder As Outlook.MAPIFolder
Dim objContact As Outlook.ContactItem
Dim strPath As String
Dim strFileName As String
Dim blnSingleMode As Boolean
On Error Resume Next
'---------------------------------------------------------------------
' Singlemode festlegen (exportiert nur den markierten Kontakt)
'---------------------------------------------------------------------
' blnSingleMode = True
'---------------------------------------------------------------------
' Zielpfad festlegen
'---------------------------------------------------------------------
strPath = "S:\Vcards\"
'---------------------------------------------------------------------
' Bei Singelmode nur markierten Kontakt exportieren
'---------------------------------------------------------------------
If blnSingleMode Then
'-----------------------------------------------------------------
' Aktuellen Kontakt referenzieren
'-----------------------------------------------------------------
Set objContact = Outlook.ActiveExplorer.Selection(1)
'-----------------------------------------------------------------
' Dateinamen ermitteln
'-----------------------------------------------------------------
strFileName = objContact.FullName & ".vcf"
'-----------------------------------------------------------------
' Ungültige Zeichen entfernen
'-----------------------------------------------------------------
Call CleanFileName(strFileName)
'-----------------------------------------------------------------
' Kontakt als Visitenkarte speichern
'-----------------------------------------------------------------
Call objContact.SaveAs(strPath & strFileName, olVCard)
'-----------------------------------------------------------------
' Visitenkarte bereinigen
'-----------------------------------------------------------------
Call CleanVcard(strPath & strFileName)
Else
'-----------------------------------------------------------------
' Outlook-Standard-Kontakteordner referenzieren
'-----------------------------------------------------------------
Set objFolder = Outlook.Session.GetDefaultFolder(olFolderContacts)
'-----------------------------------------------------------------
' Aktuellen Ordner referenzieren (wenn gewünscht, ' entfernen)
'-----------------------------------------------------------------
'Set objFolder = Outlook.ActiveExplorer.CurrentFolder
'-----------------------------------------------------------------
' Alle Kontakte bearbeiten
'-----------------------------------------------------------------
For Each objContact In objFolder.Items
'-------------------------------------------------------------
' Dateinamen ermitteln
'-------------------------------------------------------------
strFileName = objContact.FullName & ".vcf"
'-------------------------------------------------------------
' Ungültige Zeichen entfernen
'-------------------------------------------------------------
Call CleanFileName(strFileName)
'-------------------------------------------------------------
' Kontakt als Visitenkarte speichern
'-------------------------------------------------------------
Call objContact.SaveAs(strPath & strFileName, olVCard)
'-------------------------------------------------------------
' Visitenkarte bereinigen
'-------------------------------------------------------------
Call CleanVcard(strPath & strFileName)
Next
End If
'---------------------------------------------------------------------
' Clean Up
'---------------------------------------------------------------------
Set objContact = Nothing
Set objFolder = Nothing
End Sub
Private Sub CleanFileName(ByRef strFileName As String)
'=====================================================================
' Bereinigt den Dateinamen von ungültigen Zeichen
'=====================================================================
strFileName = Replace(strFileName, "\", "")
strFileName = Replace(strFileName, "/", "")
strFileName = Replace(strFileName, ":", "")
strFileName = Replace(strFileName, "*", "")
strFileName = Replace(strFileName, "?", "")
strFileName = Replace(strFileName, """", "")
strFileName = Replace(strFileName, "<", "")
strFileName = Replace(strFileName, ">", "")
strFileName = Replace(strFileName, "|", "")
End Sub
Private Sub CleanVcard(ByVal strFileName As String)
'=====================================================================
' Entfernt nicht kompatible Outlook-Elemente aus der Vcard
'=====================================================================
Dim strLine As String
Dim strVCARD As String
Dim lngFF As Long
On Error Resume Next
'---------------------------------------------------------------------
' Freie Dateinummer ermitteln
'---------------------------------------------------------------------
lngFF = FreeFile
'---------------------------------------------------------------------
' Datei erneut öffnen
'---------------------------------------------------------------------
Open strFileName For Input As #lngFF
'---------------------------------------------------------------------
' Vcard zeilenweise bereinigen
'---------------------------------------------------------------------
Do While Not EOF(lngFF)
Line Input #lngFF, strLine
If InStr(strLine, "X-MS-CARDPICTURE") Then
Do While strLine <> ""
Line Input #lngFF, strLine
Loop
End If
If InStr(strLine, "X-MS") = 0 And strLine <> "" Then
strVCARD = strVCARD & Replace(strLine, ";LANGUAGE=de", "") & vbCrLf
End If
Loop
'---------------------------------------------------------------------
' Datei wieder schließen
'---------------------------------------------------------------------
Close #lngFF
'---------------------------------------------------------------------
' Datei löschen
'---------------------------------------------------------------------
Call Kill(strFileName)
'---------------------------------------------------------------------
' Zeit zum Löschen geben
'---------------------------------------------------------------------
DoEvents
'---------------------------------------------------------------------
' Neue Datei anlegen
'---------------------------------------------------------------------
Open strFileName For Output As #lngFF
'---------------------------------------------------------------------
' Vcard schreiben
'---------------------------------------------------------------------
Print #lngFF, strVCARD
'---------------------------------------------------------------------
' Datei wieder schließen
'---------------------------------------------------------------------
Close #lngFF
End Sub
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.