michaeldon
Goto Top

Verteilerliste mit ca. externen eMail Adressen

Hallo

ich habe einen Exchange 2007 Server und mußt eine Verteilergruppe anlegen, die ca 600 externe eMails enthält.

Kann man in eine Verteilerliste auch eMail Adressen eintragen, die nicht als User oder Kontakt im AD hinterlegt sind?

Ich hab nämlich keine Lust, 600 Kontakte anzulegen....

Hat jemand eine Idee?


Michael

Content-ID: 74978

Url: https://administrator.de/contentid/74978

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

schregi82
schregi82 02.12.2007 um 10:37:28 Uhr
Goto Top
Ja, ja die Kontaktdatenpflege

Du hast jetzt genau 2 Möglichkeiten:

Das "billigste" und schnellste Lösung:
- Die schreibst deine Mail und schickst sie an dich selber, allerdings solltest du nicht mehr als 50 Empfänger (aus Erfahrung) gleichzeitig in BCC anführen.

Beim nächsten mal kopierst du die Mail(s), dann hast du die Empfänger auch wieder & darfst hoffen das Sie noch alle korrekt sind, sonst wünsche ich dir viel Spass beim Adressensuchen & korregieren.

Die sauberste und aus verschiedensten Gründen, langfristig beste: (auch wenn du sie jetzt nicht hören willst)
- Die Kontakte einzeln und das gleich komplett (Postadresse, Tel, Fax) in der globalen Adressliste anlegen und in eine Verteilerliste od. noch besser in mehrere nach Kriterien (PLZ, Alphabetisch od. ähnlich) zusammenführen.

Ausser bei "Einmalaktionen", bei dauerhaften Kundenkontakten empfiehlt sich dieser einmalige Aufwand definitiv.

Ist noch gar nicht solange aus, haben wir ~4000 Kontakte so eingepflegt, mit ein wenig Arbeitsteilung innerhalb des Büros ist das schneller erledigt als du glaubst.

Vielleicht kannst du uns ja noch verraten in welchem Format dir die Adressen jetzt vorliegen, als txt od. xls kannst du sie ja importieren.

lg,
Dani
Dani 02.12.2007 um 10:52:34 Uhr
Goto Top
Moin zusammen,
also wir pflegen auch einige zehntausend Stück in das ADS als glob. externer Kotakt ein. Wir haben dazu einfach auf einem Netzlaufwerk verschiedene Exceltabellen (einfach nach Produkt oder aber Firmen) liegen.
Auf dem Cluster werden dann die Exceltabellen per VBScript ausgewertet und die entsprechende Kontakte angelegt, abgeändert oder gelöscht. Damit das funktioniert gibt es eine Spalte "Art" und je nachdem was dort steht, reagiert das Script anders.

Muss sagen, mich hat es überrascht das es so gut mit unseren MA funktioniert. Klar, das Script ist ein bisschen länger...und viele Sicherheitsabfragen drin, aber alle sind zufrieden. face-smile
Es hat aber auch ein bisschen genauert, bis meine Kollegen das Script fertig hatten und einige logische Fehler gefixt waren.


Grüße
Dani
schregi82
schregi82 02.12.2007 um 11:02:24 Uhr
Goto Top
@Dani

Ein tolle Sache wenn ich das so höre, weisst du zufällig mehr über den Import, würd mich interessieren.

Meine Überlegung:
Wenn man die Daten in der Excel-Tabelle über eine Abfrage am SQL-Server laufen lässt, bräuchte man sich um die Synchronität von Daten in CRM und Exchange keine sorgen mehr machen.

lg,
Michaeldon
Michaeldon 02.12.2007 um 11:52:30 Uhr
Goto Top
Guten Tag

also ich habe die 600 Adressen als txt bzw als csv Datei. Hab es auch schon versucht, per Script zu importieren, aber irgendwie schaffe ich das nicht.

Kann mir vielleicht jemand einen Tip geben, wie ich die Kontakte ins AD importieren kann und auch gleich in Exchange 2007 als eMailkontakt aktivieren kann??

Am besten wäre, die Kontakte in eine eigene OU zu importieren oder?
Dani
Dani 07.12.2007 um 20:33:37 Uhr
Goto Top
Abend Michi,
Sry...das es lange gedauert hat, aber ich musste erstmal mein Archiv nach einem einfachen Beispiel durchsuchen. *g*

So sieht die Exceltabelle (Name: Globale Kontakte) aus:
adf4a7196062af866bc6a98234a8bbe5-excel

Also ganz schlicht gehalten. Du kannst das gerne (so wie wir) entsprechend erweitern. Nun brauchst du noch das VBScript dazu:
'Variablen  
'##########################################################################  
Dim objobjExcel, objOU, objContact, objRecip
Dim strVorname, strNachname, strEmail, strDesc, strKat


'Die entsprechende Datei wird geöffent  
'##########################################################################  
'Pfad zur Exceldatei  
Set objExcel = WScript.CreateObject("Excel.Application")  
objExcel.Workbooks.Open "A:\dasdadsa\dsadsada\Globale Kontakte.xls"  

'Zeilennummer der ersten Datenzeile  
i = 2 
Do While objExcel.Worksheets(1).Cells(i,3).Value <> ""  
    strVorname 	= objExcel.Worksheets(1).Cells(i,1).Value
    strNachname = objExcel.Worksheets(1).Cells(i,2).Value
    strEmail 	= objExcel.Worksheets(1).Cells(i,3).Value
    strDesc 	= objExcel.Worksheets(1).Cells(i,4).Value
	strKat		= objExcel.Worksheets(1).Cells(i,5).Value
	
	'WScript.echo "Kontakt - "& strNachname &", "& strVorname &"!"  
	
	' Organisationseinheit, in der ide Kontake erzeugt werden sollen  
	Set objOu = GetObject("LDAP://ou=Kontakte,ou=exchange, ou=suedwest,ou=vm,ou=de,dc=labor,dc=wan")  
	
	'**************************************************************************************************  
	'Hinzufügen von Kontakten  
	'**************************************************************************************************  
	If LCase(CStr(strKat)) = LCase(Cstr("A")) Then  
		'Überprüfen, ob eine Kontakt schon vorhanden ist und setzt dem entsprechend die Variable  
		' True - E-Mailadresse existiert bereits  
		' False - E-Mailadresse nicht vorhanden  
		emailExists = False
	
		For Each adcontact In objOu
			If LCase(CStr(adcontact.sn)) = LCase(CStr(strNachname)) Then
				emailExists = True
				Exit For
			End If
		Next

		'Erzeugt die einzelnen Kontakte  
		If Not emailExists Then
			
			'Erzeugt die einzelnen Kontakte  
			Set objContact = objOu.Create("contact", "cn="& strVorname &" "& strNachname)  
			
			objContact.mailNickName = strVorname &"."& strNachname  
			objContact.displayName = strNachname &", "& strVorname  
			objContact.targetAddress = strEmail
			objContact.givenName = strVorname 
			objContact.sn = strNachname 
	
			'Setzt nur die Beschreibung, wenn das Excelfeld nicht leer ist  
			If strDesc <> "" Then  
				objContact.description= strDesc
			End If
	
			' Hinterlegt im Reiter "E-Mail Adressen" der Benutzereigenschaften die E-Mailadresse  
			Set objRecip = objContact
			objRecip.MailEnable "SMTP:" & strEmail  
			objContact.SetInfo
		End If
	End If
	
	'**************************************************************************************************  
	'Updaten von Kontakten  
	'**************************************************************************************************  
	If LCase(CStr(strKat)) = LCase(Cstr("U")) Then  
	
	End If
	'**************************************************************************************************  
	'Löschen von Kontakten  
	'**************************************************************************************************  
	If LCase(CStr(strKat)) = LCase(Cstr("D")) Then  
		objOU.Delete "contact", "cn="& strVorname &" "& strNachname  
		objExcel.ActiveSheet.Cells(3,5).Value = "test"  
		objExcel.ActiveWorkbook.Saved = True

	End If
	'**************************************************************************************************  

	' Nächste Excelzeile  
	i = i + 1
	
Loop

' Setzt das "gespeichert" - Flag. Somit entfällt die Abfrage beim Beenden  
objExcel.ActiveWorkbook.Saved = True

' Exceltabelle schließen / beenden  
objExcel.Application.Quit


'Script beenden  
'##########################################################################  
'WScript.Echo "Kontakte erfolgreich angelegt!"  
WScript.Quit
Natürlich nicht vergessen, den Pfad und die OU anzupassen!

Bei uns läuft das VBScript per "Geplante Task" alle 60 Minuten. Somit können Teamleiter < Kontakte einpflegen.
Mit der Kategorie, haben wir Verteilergruppen, die auf den Inhalt der Zelle prüfen und somit die einzelnen Kontakte im Verteiler Mitglied sind.


Grüße
Dani
Michaeldon
Michaeldon 14.01.2008 um 09:19:28 Uhr
Goto Top
Hi

so, jetzt wird das akut und ich muß das machen!

Was muß bei der Excel Tabelle in die Spalte Typ eingetragen wird?

In kategorie trage ich z.b. "Internet-Mailing" ein oder? Nach diesen Begriff kann ich dann eine dymnamischen Verteiler erstellen
Dani
Dani 14.01.2008 um 10:27:09 Uhr
Goto Top
Moin,
Typ ist dafür gedacht, z.B. dem Script zusagen ob es sich um einen neuen Eintrag handelt oder aber ein Updates eines vorhandenden Kontakt oder Löschen eines Kontakts. Aber das spielt in deinem Falle noch keine große Rolle.

Die Kategorie gibt dann an, in welchen Verteilern der Kontakt sein soll. Sprich du kannst einfach mit Leerzeichen die Verteiler eingeben.


Grüße
Dani
Michaeldon
Michaeldon 14.01.2008 um 12:59:12 Uhr
Goto Top
Hi

so jetzt hab ich das mal probiert...

Das Script läuft ohne Fehlermeldung durch, aber im AD sind in der entsprechenden OU keine Kontakte da face-sad

Kann man irgendwie überprüfen, ob es irgendwo hakt?

gruß
Dani
Dani 14.01.2008 um 13:04:19 Uhr
Goto Top
Hi,
du hast diese Zeile:
Set objOu = GetObject("LDAP://ou=Kontakte,ou=exchange, ou=suedwest,ou=vm,ou=de,dc=labor,dc=wan")  
Diese Zeile solltest du an deine Domäne anpassen und die OU's sollten vorhanden sein, ggf. anpassen.


Grüße
Dani
Michaeldon
Michaeldon 14.01.2008 um 13:11:27 Uhr
Goto Top
Hab ich angepasst und es kommt Kein Fehler!

Hab dann versuchsweise mal als ou=aaa eingegeben und es kam sofort ein Fehler

Echt blöd die ganze Sache!
Dani
Dani 14.01.2008 um 13:17:53 Uhr
Goto Top
Setz mal beim Typ bei allen "A". Dann dürfte es gehen...denn so wie ich das sehe, ist dasScript schon eine Weiterentwicklung vom Kollegen.


Grüße
Dani
Michaeldon
Michaeldon 14.01.2008 um 14:19:17 Uhr
Goto Top
ok, jetzt läuft es schon mal besser

jetzt bleibt er bei

objRecip.MailEnable "SMTP:" & strEmail

stehen...

In der Beschreibung steht ja, dass er jetzt versucht im Reiter "eMail" die Adresse zu schreiben, aber die gibts ja unter Exchange 2007 nicht mehr...
Dani
Dani 14.01.2008 um 14:23:21 Uhr
Goto Top
Ok....dann hast du nur die letzte Hürde zunehmen. Jedoch kann ich dir da nicht mehr weiterhelfen. Da bei uns Exchange 2007 nicht mal im Labor installiert worden ist. Daher kann es noch 2 Jahre dauern. Sry...


Grüße
Dani
Micholos
Micholos 17.01.2008 um 10:15:42 Uhr
Goto Top
Hallo zusammen,

vielen Dank für die tolle Vorarbeit von Dani, habe das selbe Problem wie Michael!don und hänge auch exakt am .MailEnable "SMTP:.....

Allerdings hab ich keinen Exchange 2007 sondern 2003 im Einsatz und da würde es den Reiter "eMail" schon noch geben.

Hat wer eine Idee was hier Faul sein könnte? Wenn ich den "MailEnable"-Teil auskommentiere läuft das Script ohne Fehler durch nur hab ich eben dann die lokale Domain bei den SMTP-Adressen.


Vielen dank nochmal an Dani
Micholos
Micholos 17.01.2008 um 10:51:56 Uhr
Goto Top
Hab´s gerade selber gebacken gekriegt, hier mein Ergebnis für ähnlich verzweifelte:

Erzeugen der Kontakte folgende Zeile abändern:

objContact.targetAddress = strEmail
ändern in
objContact.targetAddress = "SMTP:" & strEmail

dann wird gleich die richtige SMTP-Adresse als Standard-Gesetzt, bei mir funktionierts wenigstens so.

Gruß

Michl