ichbinhier
Goto Top

Verbindung zu Stratos-MySQL-Datenbank - eMail-Anhang per Konsole abgreifen und importieren

Ubuntu 10.04.1 LTS
MySQL Datenbank bei Strato
per Access soll Auswertung erstellt werden

Hallo und frohes Fest!

na Bescherung schon durch?

Ich bastele gerade an Joomla mit einem Reporttool, dass die Ergebnisse in die MySQL 5 Datenbank schreibt. Daraus will ich jetzt in Access ein Auswertung basteln.
Nun einige Stratokunden werde es wissen, dass die Remoteverbindung zu MySQL aus Sicherheitsgründen nicht funktioniert.

Ich habe jetzt die ganzen Tage so um die Ecke gedacht und wollte fragen, ob es zu realisieren ist und wenn ja, wie bei bestimmten Dingen vorgehen muss.

Also mein Plan ist:

1.) Ich erhalte bereits jeden Tag von Joomla über eine Komponente eine Datensicherung der Datenbank per Mail zugestellt (derzeit nutze ich den Strato-Server als Mailserver für die jeweilige Domain)

2.) Ich kann in der Komponente von Joomla auch eine eMail-Adresse angeben, die zu meinem privatem Ubuntu 10.04 LTS mit Zarafa hier zu Hause führen.

3.) Ich greife mir über ein Shell-Script den Anhang (datenbank.sql.gz) ab, speichere ihn im temporären Verzeichnis, entpacke und importiere die Datenbank in den lokalen MySQL Server

4.) Ich greife mit Access auf diese MySQL-Datenbank bei mir zu Hause zu und kann die Auswertungen erstellen

So mein Plan klingt für mich gut aber für Euch???? Punkt 1 ist erledigt, Punkt 2 ist eine Sekundenaufgabe, schwierig wird es erst bei Punkt 3.

Wie greife ich per Konsole auf die eMails einer bestimmten eMail-Adresse zu, speichere diesen in /tmp ab um ihn zu entpacken?

Besteht überhaupt eine Möglichkeit???

Gruß Axel

Content-Key: 157543

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: it-frosch
it-frosch Dec 27, 2010 at 09:08:31 (UTC)
Goto Top
Hallo Axel,

du benötigt ein Emailclient auf der console. Schau dir mal **Mutt* an.

grüße vom it-frosch
Member: ichbinhier
ichbinhier Dec 27, 2010 at 09:39:37 (UTC)
Goto Top
Guten Morgen,

Mutt ist mir ein Begriff, aber wie greife ich denn dort den Anhang ab? Es soll ja ein gewissen Automatismus geben.

Gruß Axel
Member: it-frosch
it-frosch Dec 27, 2010 at 16:21:41 (UTC)
Goto Top
Hallo Axel,

ich habe hier noch etwas anderes für dich gefunden:

http://www.linux-club.de/viewtopic.php?f=83&t=78046&start=0

grüße vom it-frosch
Member: ichbinhier
ichbinhier Dec 27, 2010 at 20:45:38 (UTC)
Goto Top
Hi it-frosch,

danke der Tipp ist Gold-Wert.

Jetzte hätte ich aber noch eine Frage, da ich mich für die Pythonvariante entschieden habe, da mein Linuxmailsystem sonst vollkommen aus dem Tritt kommt.

#!/usr/bin/env python

import poplib
import email
import os
import sys
import string

#
# attsave.py
# Check emails at PROVIDER for attachments and save them to SAVEDIR.
#
# Written by abgdf@gmx.net, 2007, License: LGPL.
#

PROVIDER = "pop.YourMailProvider.de"  
USER = "YourUserName"  
PASSWORD = "YourPassword"  

SAVEDIR = "/home/YourUserDirectory"  


def saveAttachment(mstring):

    filenames = 
    attachedcontents = 

    msg = email.message_from_string(mstring)

    for part in msg.walk():

        fn = part.get_filename()

        if fn <> None:
            filenames.append(fn)
            attachedcontents.append(part.get_payload())

    for i in range(len(filenames)):
        fp = file(SAVEDIR + "/" + filenames[i], "wb")  
        fp.write(attachedcontents[i])
        print 'Found and saved attachment "' + filenames[i] + '".'  
        fp.close()

try:
    client = poplib.POP3(PROVIDER)
except:
    print "Error: Provider not found."  
    sys.exit(1)

client.user(USER)
client.pass_(PASSWORD)

anzahl_mails = len(client.list()[1])

for i in range(anzahl_mails):
    lines = client.retr(i + 1)[1]
    mailstring = string.join(lines, "\n")  
    saveAttachment(mailstring)

client.quit()

Ich habe zuvor nie mit Python gearbeitet, aber ich brauche noch einen Befehl in der Datei und zwar obwohl das POP3 ist, bleiben die eMails auf dem Server erhalten. Wie bekomme ich jetzt diese eMails auf dem Server gelöscht? Die nachfolgenden Skripte können jetzt ja nicht wissen, welche Datei gemeint, da die SQL-Datei mit keinem sauberen Dateinamen gemailt wird (Auf den Dateinamen habe ich keinen Einfluss).

--- Ergänzung ---

Wenn ich das Script ausführe, dann erhalte ich eine verschlüsselte SQL-Datei und weiß nicht so recht, was ich damit anfangen soll. Die gleiche eMail habe ich mir auch auf ein anderes Konto gerschickt und die eMail samt Anahng kommen richtig herüber. Jetzt noch kreative Vorschläge???

Schöne Grüße
Axel

Grüße
Axel
Member: ichbinhier
ichbinhier Dec 29, 2010 at 18:27:22 (UTC)
Goto Top
Nabend,

darf ich nochmal nachfragen, ob sich einer damit auskennt??

Also es sind jetzt noch zwei offene Punkte: POP3 Abruf mit Löschen der eMails auf dem Server und die Entschlüsselung der eMails auf meinem Ubuntu 10.04.1 LTS.

Schönen Abend noch.

Gruß Axel