29.12.11

Dateien online freigeben mit automatisiert versendeten und wechselnden Benutzeraccounts - Einfach ist was anderes !

Letztens benötigte ich unbedingt eine Möglichkeit, Dateien wie beispielsweise Dokumente, aber auch komplette Websites einer begrenzten Leserschaft anzubieten. Dazu benötigt wird also ein Server und automatisierter eMailversand von Benutzeraccounts. Das Ganze wenn möglich recht schnell & kostenlos, auf 10 Euro oder mehr pro Monat an Kosten lasse ich mich dafür sicher nicht ein, schließlich kassiere ich kein Geld von meinen Benutzern.

Im Folgenden also eine Anleitung, wie Ihr das bewältigen könnt, Schritt für Schritt. Um nicht wie ich erst stundenlang im Netz falsche oder veraltete Informationen lesen zu müssen und dann doch nicht gescheiter zu sein.
Erst mal alles, was ich eben benutzt habe:
  • Server auf bplaced.net (für Dateien und .htaccess/.htpasswd)
  • gMail (als Mailaccount und für Kontakte)
  • Microsoft Outlook 2010 (für eMailversand)
  • Microsoft Excel 2010 (für automatisierte Mails per Makro und Benutzerlisten)
  • Microsoft Windows Seven x64 (Für Office & FTP-Zugriff auf Server)
Diese nehmen einem schonmal mehr oder weniger Arbeit ab und man findet viele Scripte online, was für den automatisierten Mailversand per Visual Basic Script in Excel als Amateurprogrammierer doch recht nützlich ist.
Erstmal habe ich mich natürlich gefragt, wie ich das Ganze angehen soll: Eigener Server, eigene Scripts oder externe Lösung. Leider bin ich zu dem Schluss gekommen, dass es kostenlos nicht möglich ist, mit einem einzigen Dienstleister Benutzeraccounts anzulegen für eigene Dateien, diese Dateien zu hosten und zyklisch neue Accounts versenden zu lassen.

Dann hier die Vorbedingungen: Was Ihr schon haben solltet und hier nicht beschrieben wird:
(es würde den Rahmen sprengen, das auch noch zu erläutern)
  • Ihr habt eure Kontakt-eMail-Adressen der Benutzer vorliegen oder im gMail-Account in Kontakten.
  • Ihr habt einen Server und eine Homepage, mit dem Ihr Dateien hostet und wo ihr einen Ordner (mit Unterordnern, was egal ist) habt, welcher für die Benutzergruppe zugänglich sein soll. Bei mehreren versch. Benutzergruppen wirds komplizierter, aber ist durchaus auch machbar mit den im Folgenden beschriebenen Methoden, welche dann eben mehrmals angewendet werden müssen.
  • Ihr habt FTP-Zugriff auf euren Server (z.B. mit Windows - hier ein schönes Tutorial dazu) und euer Server unterstützt htaccess (Passwortsicherung von Ordnern).
Tja, mehr müsst ihr vorerst nicht haben, für viele sollte das auch kein allzu großes Problem darstellen, um diese Sachen zu bekommen gibt's tausende Anleitungen im WWW - einfach googlen.


Jetzt ist es primär erstmal egal, mit was wir anfangen. Also mal zum htaccess Passwortschutz: 

Ordner auf Apache- (und anderen vllt auch?!) Servern können mit einen .htaccess und einer .htpasswd Datei geschützt werden. Diese Dateien liegen in dem Ordner des Webservers, der nur den eingeschränkten Benutzerkreisen zugänglich sein soll. Als Beispiel nehme ich einen fiktiven Ordnerpfad auf einen fiktiven bplaced.net Server:

             http://servername.bplaced.net/ordner1/sicherer_ordner/

Eine .htaccess Datei enthält Informationen zur Benutzerliste, welche zusammen mit den Passwörtern in einer .htpasswd-Datei gespeichert wird.
Man öffnet also den Texteditor, schreibt die benötigten Anweisungen rein und speichert als .htaccess oder eben .htpasswd  -> NICHT .htpasswd.txt oder htpasswd.txt oder sonstwas!!!
In die .htaccess gehört folgendes:

           AuthName "hier steht das was angezeigt wird im Browserfenster bei der Accounteingabe" 
           AuthType Basic 
           AuthUserFile /users/servername/www/ordner1/sicherer_ordner/.htpasswd
           require valid-user

Wobei darauf zu achten ist, dass der Pfad der AuthUserFile soweit ich weiß speziell für bplaced.net Server gilt, und auch anders aussehen kann bei anderen Hostern. Was da reingehört ist eben der spezifische interne Serverpfad, den man oft durch googlen für den eigenen Server/Hoster rausfinden kann.
Die .htpasswd muss aber natürlich auch da sein, nämlich im Ordner sicherer_ordner und muss folgendes enthalten:    (eben alle Benutzer mit Passwort, in folgender Form)

          User1:uv7EVGE7uuNgs 
          User2:uvDfqg5kpJhnQ

Und so weiter.
Das könnt Ihr nicht selbst erstellen (normalerweise ^^), um die .htpasswd oder auch die .htacces-Dateien erstellen zu lassen gibts Online-Tools, wie das echt gute hier. Denn das nach dem Doppelpunkt ist natürlich das verschlüsselte Passwort.


Nun beide Dateien in den zu schützenden Ordner auf eurem Server und fertig - wer jetzt online auf das geschützte Verzeichnis oder irgendeinen Ordner oder Datei darin zugreifen möchte wird nach Username und Passwort gefragt.


Als nächstes kommen wir zu den eMail-Adressen:

Am einfachsten ist natürlich der Fall, dass ihr alle Mailadressen eurer Benutzer in einer Textdatei oder sonstigen Liste vorliegen habt. Aber in meinem Fall hatte ich eben meine Benutzer nur in GoogleMail online als Kontakte gespeichert. Wenn man jetzt nur zehn Benutzer anlegen möchte, klar, dann kopiert man sich einfach schnell die paar Mailadressen und fügt sie in ein Textdokument ein. Aber bei mehreren sind folgende Schritte vorzuziehen, um Zeit zu sparen:
Die Kontakte werden aus gMail als VCF-Datei (v-card-format) exportiert. Das hat den Vorteil, dass wir bei excel festlegen können, wie die Datei importiert werden soll. Dann öffnet man Excel, wählt "Datei", "Öffnen", wählt die Option "Alle Dateien" unten rechts (sonst wird die vcf nicht aufgelistet) und öffnet die contacts.vcf Datei. Man drückt dann im Auswahlfenster einmal auf "Weiter", setzt dann das Häkchen bei "Semikolon" UND das Häkchen bei "Andere", wobei in das Feld neben "Andere" ein Doppelpunkt  :  eingefügt wird. Dann wird mit erneutem Klick auf "Weiter" und "Fertig stellen" die Datei importiert.
Wenn jetzt alles glatt gelaufen ist, hat man in jeder fünften Zeile in Spalte C eine Mailadresse. Um diese nun untereinander zu bekommen, benötigt man eine Excel-Formel, und zwar folgende:

         =INDIREKT("C"&5+(ZEILE(A1)*6))

Durch Vervielfältigen wird ein =INDIREKT("C"&5+(ZEILE(A2)*6)), usw daraus, was alle Mailadressen untereinander platziert. Diese hat man dann schön in einer Liste untereinander, kann diese exportieren etc, genau das, was wir wollten. Das Ganze wird übrigens hier sehr gut beschrieben / diskutiert, mein Dank an dieser Stelle gilt <Peter>.


Kommen wir zum Hauptteil:   die Excel-Datei mit Makro

Die Vorarbeiten sind erledigt. Eine fertige Excel-Datei enthält dann beispielsweise bereits das Makro, einen Passwort - Zufallsgenerator und Betreffzeilen- sowie Mailinhaltseditor. Damit das Visual Basic Script, also das Makro, funktioniert, muss bereits Outlook installiert sein und ein eMail-Konto eingebunden sein. Das sollte auch ohne Anleitung zu schaffen sein denke ich.

Das Makro:
  • Sub Neu()

    Dim objApp As Object
       Dim objMailItem As Object
       Dim Adress As Variant
       Dim i As Integer
       i = 4

    Do While Cells(i, 5).Value = True
    Set objApp = CreateObject("Outlook.Application")
      Set objMailItem = objApp.CreateItem(0)
    With objMailItem
    .To = Cells(i, 1)
    .body = Cells(i, 3)
    .Subject = Cells(i, 4)
    .OriginatorDeliveryReportRequested = False
    .ReadReceiptRequested = False
    .send
    End With
    i = i + 1
    Loop

    End Sub
Man kann die einzelnen Schritte recht gut nachvollziehen, wenn man ein wenig von Programmieren versteht. Setzt man .OriginatorDeliveryReportRequested = True und .ReadReceiptRequested = True wird man folglich empfangsbestätigungen erhalten, zumindest von web.de Nutzern bekommt man diese i.d.R. oft. Ersetzt man .send durch .display, wird nicht gesendet sondern erst angezeigt, wie die Mail aussehen wird, zum Überprüfen.
Dank geht an dieser Stelle an Nenilix, von diesem Forum. Ein paar echt nützliche Tipps zum Skript konnte ich mir dort holen, aber leider lange nicht alles. Denn ohne Loop-Befehl wird's echt langwierig, auch den integer i und seine Verwendung musste ich mir erst anlernen.

Der Zufallsgenerator: Er erstellt ein fünfbuchstabiges Passwort, wenn gewünscht auch 1000 mal :)
  • =ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+WENN(ZUFALLSZAHL()>0,5;96,5;64,5);0))&ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+WENN(ZUFALLSZAHL()>0,5;96,5;64,5);0))&ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+WENN(ZUFALLSZAHL()>0,5;96,5;64,5);0))&ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+WENN(ZUFALLSZAHL()>0,5;96,5;64,5);0))&ZEICHEN(RUNDEN(ZUFALLSZAHL()*26+WENN(ZUFALLSZAHL( )>0,5;96,5;64,5);0))
Ich habe ja hin und her überlegt, ob ich eine fertige Excel-Datei online stellen soll oder nicht. Da kommt erstmal wieder die Frage eines Hosts, dann die Frage, ob persönliche Daten im Excel-Dokument drin sind, Sicherheitsaspekte etc. pp

Die Entscheidung ist leider nicht gut für euch ausgefallen, Ihr müsst also mit einem Bild auskommen, das den wichtigen Ausschnitt der Excel 2010 Datei enthält. Alles in den richtigen Spalten & Zeilen übernommen sollte das makrozum Funktionieren bringen. Dabei ist jedoch darauf zu achten, dass der Zufallsgenerator nur eine Zelle in Anspruch nimmt, das darunter sind KEINE Formeln sondern nur Buchstaben, durch kopieren -> einfügen (Werte) wird das erreicht. Sonst werden die Passwörter ständig geändert, und ihr könnt diese nicht in der .htpasswd eintragen (Anleitung oben, mit Onlinetool), was natürlich bei jeder Änderung der PWs nötig ist.


Ich hoffe, Ihr habt einen Nutzen aus dem doch ein wenig aufwendigen Tutorial gezogen, über Kommentare freue ich mich wie immer natürlich.

Grüße ;)

0 Kommentare:

Kommentar veröffentlichen

Kommentare verfassen ist hier sehr einfach, man kann sogar ohne Anmeldung anonym Kommentare hinterlassen. Also, zeig' uns deine Meinung ...

Kontakt

Name

E-Mail *

Nachricht *

Haftungsausschluss

disclaimer