1.8k Aufrufe
Gefragt in Tabellenkalkulation von fat61 Einsteiger_in (49 Punkte)
Hallo,

ich möchte hier noch einen weiteres Thema aufmachen zu dem Thema: Wer manipuliert meine Excel Tabellen?.

Ich habe gelesen das jemand in Excel mit VBA ein Makro programiert hat, dass jedes mal wenn die Datei sich öffnet eine Email geschickt wird "Ich wurde geöffnet". Das ganze ist wohl dazu verwendet worden um einen Clouddienst auf seine Datensicherheit zu überprüfen. So hat der Anwender diese Excel mit dem Makro auf die Cloud geladen und wollte damit überprüfen ob diese von wem anders geöffnet wird. Ich möchte hier selbstverständlich keinen Cloudanbieder diskreditieren, jedoch solte man schon entsprechnede Cloud-Verschlüsselungen verwenden so am rande.

Aber nun wieder zum eigentlichen Thema: Kann mir jemand bestätigen ob sowas geht? Ich habe möglichkeiten gefunden die dann Outlook verwenden. Aber geht sowas auch ohne Outlook? Sprich kann man den VBA Editor Passwortschützen, dort SMTP IMAP und die Anmeldedaten hinterlegen und sobald sich die Datei öffnet eine Mail schicken?

Also das ist meine erste Frage geht das ohne Outlook?

Meine zweite Frage ist:

Funktionieren Makros in Excel auch wenn jemand eine Open-Source Lösung für Excel verwendet?

9 Antworten

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo fat61,

zum Versenden von Mails braucht es einen Mail-Clienten, der in Excel nicht integriert ist. Die Mail würde beim Öffnen der Datei auch nicht vom Cloud-Server versandt, sondern von dem PC aus, der die Mail öffnet. Würdest du den Mail Clienten im Excel-Makro integrieren, müsstest du die Zugangsdaten zu einem eigenen Mail-Account hinterlegen, die dann der Empfänger der Mail auch irgendwie zu Gesicht bekommen könnte.

Der gängige Weg ist deshalb, dass Excel die Mail an das Betriebssystem absetzt, das sie an den im PC als Standard eingerichtete Mail Client weiterleitet. Welcher Mail Client das ist, spielt keine Rolle. Wenn aber am PC keiner eingerichtet ist, gibt es auch keinen Mailversand.

Ob Excel Makros auch in Open Source Office Anwendungen funktionieren: Eher nicht. Man kann zwar Makros konvertieren, aber automatisch mit dem Öffnen der Datei wird es nicht gehen.

Gruß computerschrat
0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)
Ich weiß jetzt zwar nicht genau, wie man sowas bauen müsste, kann mir aber gut vorstellen, das man sowas auch mithilfe eines Webservers realisieren kann. Excel ruft über das Makro eine bestimmte URL auf und den Rest erledigt ein Script, dass da hinterlegt ist.

Gruß Flupo
0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Ja, wenn man einen Webserver betreibt oder Webspace auf einem Server nutzt, kann man dort ein System wie Joomla, Wordpress, TYPO3 oder ähnliches installieren. Solche Systeme enthalten ihren eigenen Mailclienten und damit ist es recht einfach, bei Aufruf einer festgelegten URL eine Mail zu generieren. Die aufgerufene URL kann über GET oder POST zusätzlich noch Informationen über die Quelle des Aufrufs enthalten, die dann in die Mail übernommen werden können.

Ich denke aber, die wenigsten werden Webspace haben, in dem auch Programme installieren werden können.

Gruß computerschrat
0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)
Grundsätzlich sind Excel-Makros zur Überwachung einer Excel-Datei aber eher nicht gut geeignet. Man kann ja die Ausführung dieses Makros sehr leicht verhindern, so dass die Überwachung ausgebremst wird.

Da sind dann andere Methoden (Server-Logs o.ä.) besser geeignet.
0 Punkte
Beantwortet von halfstone Profi (18.1k Punkte)

Hi Computerschrat,

"Ich denke aber, die wenigsten werden Webspace haben, in dem auch Programme installieren werden können."

Sowas gibt es heute schon für kleines Geld in der Cloud. Das Supportnet teste ich gerne auf einem 2,96 Euro/Monat Cloud Server, da kann man installieren was man will. 

Aber meinst ist ja ein Mailer schon auf vielen Webspaceangeboten mit PHP installiert. Da kann man dann einfach die PHP Mailfunktion benutzen.

Klingt für mich aber für den Zweck doch etwas overkill mäßig. Nur so als Info, dass man Dank Cloud heutzutage so ziemlich alles für kleines Geld machen kann.

Gruß Fabian

0 Punkte
Beantwortet von halfstone Profi (18.1k Punkte)

Hi fat61,

du könntest natürlich auch auf externe Dienste zugreifen und damit den Versandt deiner e-mail durch ein Excel Script auslösen.

Ich kenne mit bei Excel nicht so aus aber wenn man ein Excel Macro so schreiben könnte, dass es eine REST Api benutzt, also einen Link aufruft dann sollte das mit einem Anbieter wie 

https://sendgrid.com/solutions/email-api/

Und den angepassten Aufruf:

curl --request POST \ --url https://api.sendgrid.com/v3/mail/send \ --header "Authorization: Bearer $SENDGRID_API_KEY" \ --header 'Content-Type: application/json' \ --data '{"personalizations": [{"to": [{"email": "test@example.com"}]}],"from": {"email": "test@example.com"},"subject": "Sending with SendGrid is Fun","content": [{"type": "text/plain", "value": "and easy to do anywhere, even with cURL"}]}'

gehen.

Curl ist in dem Fall ein Linux Befehl, der diese URL aufruft.

Gruß Fabian

P.S.: Da gibt es sicher noch viele andere E-Mail Dienstleister, die so eine Funktion über eine REST Api anbieten, ich hab einfach den ersten genommen den ich bei Google gefunden habe.

0 Punkte
Beantwortet von fat61 Einsteiger_in (49 Punkte)
Hi Computerschrat, also ich selber hab auch eine VPS Server mit Plesk da läuft das gut also für meien Anwendung wäre das aber leider trotzdem so nicht geeignet da ich in dem Fall mit aller Sicherheit gegen Richtlinien verstoßen würde. Jedoch hat jeder nutzer seinen eigenen Outlook account der permanenet verbunden ist.

Kann man dann nicht automatisch eine mail an mich als empfänger schicken. "Ich habe deine Excel geöffnet" dann sehe ich als Timestamp wann die Email verschickt wurde und der Absender ist auch klar. Das würde mir reichen. Am besten funktioniert alles im hintergrund.

Ich habe auch befehle gelesen für Outlook das dann die Email sogar wieder aus dem Gesendetordner gelöscht wird. Es ist echt beängstigend was alles mit VBA möglich ist. Total Krass!
+1 Punkt
Beantwortet von steffen2 Experte (6.4k Punkte)
ausgewählt von fat61
 
Beste Antwort

sind in der Datei irgendwelche anderen Makros schon drin, die benötigt werden?

Ansonsten werden nämlich die Mitarbeiter immer auf NEIN klicken, wenn sie gefragt werden, ob Makros ausgeführt werden sollen. Ansonsten hat der Admin seine Hausaufgaben nicht gemacht, und der nächste Virus kommt bestimmt.

Sub EmailVersenden()

Dim appOutlook As Outlook.Application
Dim objEMmail As Outlook.MailItem

Set appOutlook = CreateObject("Outlook.Application")
Set objEMmail = appOutlook.CreateItem(olMailItem)

objEMmail.To = "fat61@dasIstDieEmpfängerDomain.de"
objEMmail.Subject = "Ich habe deine Excel geöffnet"
objEMmail.Body = "und dabei Makros erlaubt"
objEMmail.Send

Set appOutlook = Nothing
Set objEMmail = Nothing

End Sub


oder

Sub EmailVersenden_OhneVerweise()

Dim appOutlook As Object
Dim objEMmail As Object

Set appOutlook = CreateObject("Outlook.Application")
Set objEMmail = appOutlook.CreateItem(0)

objEMmail.To = "fat61@dasIstDieEmpfängerDomain.de"
objEMmail.Subject = "Ich habe deine Excel geöffnet"
objEMmail.Body = "und dabei Makros erlaubt"

objEMmail.Send

Set appOutlook = Nothing
Set objEMmail = Nothing

End Sub


teste die beiden Varianten. Eine sollte bei dir funktionieren. Das ganze im Datei laden aufrufen.

Gruß Steffen2

0 Punkte
Beantwortet von fat61 Einsteiger_in (49 Punkte)
Bearbeitet von fat61

@Steffen2

EmailVersenden_OhneVerweise funktioniert! Danke! 

das ist der Trick an der Sache man muss Makros erlauben sonst bringt einem die Datei nichts. Sprich wenn man die Datei nutzen möchte oder etwas beschäden braucht man die Makros. Also für mich eine WIN WIN Situation

...