v(isiten)Card - The Electronic Business Card - ist ein Datenformat für Adressen, die hauptsächlich für Kontakte in vielen SMPT-Clients wie Outlook verwendet werden könne. Besonders geeignet sind Sie für geschäftliche Kontakte, da man in einer vCard auch Angaben über Abteilung, entsprechendes Büro, Position in der Firma, und vieles mehr machen kann. Der Vorteil einer vCard ist, dass Sie Standard ist, der von einem unabhängigen Konsortium definiert wurde. So können Sie plattform-unabhängig eingesetzt werden. Eine vCard besteht im Grunde nur aus Text.
Also will ich heute ein Beispiel zeigen, wie man v(isten)-Card´s mit Hilfe von ASP dynamisch am Server generieren kann. Mit Angabe des entsprechendes ContentTypes kann die vCard direkt in den SMPT-Client (Outlook) aufgenommen werden, ohne Sie vorher client-seitig speichern zu müssen.
Wie sieht eine vCard aus?
BEGIN:VCARD VERSION:2.1 N:Elbl;Bernhard FN:Bernhard Elbl ORG:ppedv AG TITLE:Software/Entwicklung TEL;WORK:08677-9889-0 TEL;HOME:0111111 TEL;FAX;WORK:08677-9889-44 TEL;CELL:017111111111111111111 EMAIL;INTERNET:BernhardE@ppedv.de URL;WORK:http://www.ppedv.de ADR;WORK;POSTEL;PARCEL:;;Markler Str. 15b;84489 Burghausen END:VCARD |
Alle Werte haben spezielle Attribute, mit deren Hilfe Sie Vorname, Nachname... zugeordnet werden können. Eine vCard beginnt immer mit BEGIN:VCARD, danach kommt die Versions Angabe. Jede vCard endet mit einen END:VCARD. Dass gibt uns die Möglichkeit auch mehrere vCards gleichzeitig zu transferieren.
Werte von Attributen kommen immer nach einem Doppelpunkt...
Hier haben wir gleich zwei Werte. Nachname und Vorname. Wichtig ist dass diese 2 Werte durch einen Strichpunkt getrennt werden.
Der Strichpunkt teilt aber nicht nur 2 Werte für ein Attribut sondern kann auch bestimmte Attribute genauer spezifizieren...
Das ist die Telefonnummer, unter der die Person in der Firma zu erreichen ist. Das Attribut "TEL" wird genau spezifiert durch "WORK". Hier ist wieder wichtig nach dem Attributnamen seine Spezifierung zu anzugeben, und diese mit einem Strichpunkt zu trennen. Werden keine Spezifierungen angeben, so werden Default-Spez. verwendet. Nach dem Ende der Spezifierung kommt der Wert. Vor dem Wert muss wieder ein Doppelpunkt stehen!
Die vCard-Nachlese:
Alle Attribute (und dass sind wirklich viele) mit Ihren Spezifikationen können hier nachgelesen werden...
www.imc.org/pdi/vcard-21.doc
Die Umsetzung in ASP lässt sich am besten mit Hilfe ein Klasse machen, um eine einfache Wiederverwendbarkeit zu erreichen. Ist die Klasse einmal geschrieben, kann Sie in jeder ASP-Seite includiert und wiederverwendet werden. Auch das Erweitern der hier vorgestellten Klasse um zusätzliche Attribute ist sehr einfach.
Zu erst die Verwendung der Klasse mit ASP
' ContentType für vCard setzen Response.Clear Response.ContentType = "text/x-vcard"' Klasse instanziieren set oVCard = new CVCard ' Personalien setzen with oVCard .SetFName "Bernhard Elbl" ' Famaly-Name .SetName "Elbl", "Bernhard" ' Nachname, Vorname .SetAdresse "Markler Str. 15b", "84489 Burghausen" ' Adresse setzen .SetTel_prv "0111111" ' Telefon-Nummer (Privat) .SetTel_mobil "017111111111111111111" ' Telefon-Nummer (Handy) .SetPosition "Software/Entwicklung" ' Abteilung in der Firma .SetFirma "ppedv AG" ' Firmename .SetTel_fa "08677-9889-0" ' Telefon-Nummer (Firma) .SetFax_fa "08677-9889-44" ' Faxnummer (Firma) .SetEmail "BernhardE@ppedv.de" ' Email-Adresse .SetWebSite "http://www.ppedv.de" ' Internet-Adresse der Person setzen ' GetVCard - String der die komplette vCard darstellt in den Browser schreiben Response.Write .GetVCard end with ' Klasse zerstören set oVCard = nothing |
Die Reihenfolge der Angabe spielt keine Rolle, da die einzelnen Werte erst in GETVCard zusammen gestellt werden. Alle Set...-Funktionen generieren einen zusätzlichen TAG in der vCard.
Und jetzt zur Klasse VCard
Class CVCard ' Modul-Variablen Private m_sName ' kompletter TAG für den Namen z.B.: "N:Elbl;Bernhard" Private m_sFName ' kompletter TAG für Famaly-Name... Private m_sFirma ' kompletter TAG für Firma.... Private m_sPosition ' usw........ Private m_sTel_fa Private m_sTel_prv Private m_sFax_fa Private m_sTel_mobil Private m_sAdresse Private m_sEmail Private m_sURL ' Diese Funktionen setzen alle Angaben (Modul-Variablen zusammen) ' wobei immer BEGIN und END mit geschrieben wird ' Sie können also auch eine leere Karte versenden! Public Function GetVCard vVCARD = "BEGIN:VCARD" & vbCrLf & "VERSION:2.1" & vbCrLf vVCARD = vVCARD & m_sName vVCARD = vVCARD & m_sFName vVCARD = vVCARD & m_sFirma vVCARD = vVCARD & m_sPosition vVCARD = vVCARD & m_sTel_fa vVCARD = vVCARD & m_sTel_prv vVCARD = vVCARD & m_sFax_fa vVCARD = vVCARD & m_sTel_mobil vVCARD = vVCARD & m_sEmail vVCARD = vVCARD & m_sURL vVCARD = vVCARD & m_sAdresse vVCARD = vVCARD & "END:VCARD" & vbCrLf GetVCard = vVCard End Function ' Funktionen die die einzelnen TAG´s (Attribut;Spezifizierung:Wert) generieren und in ' Modul-Variablen zwischen speichern. ' Funktion SetName generiert den Nachname, Vorname Public Function SetName(ByVal Nachname, ByVal Vorname) m_sName = "N:" & Nachname If len(Vorname) <> 0 then m_sName = m_sName & ";" & Vorname End If m_sName = m_sName & vbCrLf End Function Public Function SetFName(ByVal Value) m_sFName = "FN:" & Value & vbCrLf End Function Public Function SetFirma(ByVal Value) m_sFirma = "ORG:" & Value & vbCrLf End Function Public Function SetPosition(ByVal Value) m_sPosition = "TITLE:" & Value & vbCrLf End Function Public Function SetTel_fa(ByVal Value) m_sTel_fa = "TEL;WORK:" & Value & vbCrLf End Function Public Function SetTel_prv(ByVal Value) m_sTel_prv = "TEL;HOME:" & Value & vbCrLf End Function Public Function SetFax_fa(ByVal Value) m_sFax_fa = "TEL;FAX;WORK:" & Value & vbCrLf End Function Public Function SetTel_mobil(ByVal Value) m_sTel_mobil = "TEL;CELL:" & Value & vbCrLf End Function Public Function SetAdresse(ByVal Strasse, ByVal PLZundOrt) m_sAdresse = "ADR;WORK;POSTEL;PARCEL:;;" & Strasse & ";" & PLZundOrt & vbCrLf End Function Public Function SetEmail(ByVal Value) m_sEmail = "EMAIL;INTERNET:" & Value & vbCrLf End Function Public Function SetWebSite(ByVal Value) m_sURL = "URL;WORK:" & Value & vbCrLf End Function End Class %> |
Wenn Sie diese Klasse um weitere Attribute erweitern wollen, müssen Sie eine neue Funktion und eine neue dazu gehörige Modul-Variable definieren. Letztere müssen Sie dann noch in die Funktion GETVCard integrieren.
Weitere Links...
http://www.imc.org/pdi/
http://www.imc.org/pdi/vcard-21.doc
http://www.vcard.org/
Den Source-Code können Sie von der Seite kopieren und in eine ASP-Seite einfügen. Viel Spass!