Ich hoffe ich habe das richtige Unterforum erwischt.
Ist es möglich ohne extra Emailprogramm mit dem Pi Mails von einem Emailkonto zu empfangen und gleich automatisch aus zudrucken?
Ich hoffe ich habe das richtige Unterforum erwischt.
Ist es möglich ohne extra Emailprogramm mit dem Pi Mails von einem Emailkonto zu empfangen und gleich automatisch aus zudrucken?
Email empfangen und drucken? Schau mal ob du hier fündig wirst!
Wie willst du ohne entsprechenden E-Mail-Client Mails empfangen??
Ich meinte ohne Thunderbird und Co. geht doch bestimmt auch so ohne Desktop Programm, denke ich in meinem Alterschwachsinn
Ein Ansatz:
Mails per konfiguriertem getmail abholen, an Script übergeben oder MailDir per inotify überwachen und passend ausdrucken (ggf mit Attachment-Handling).
EDIT:
Anregung:
https://blog.thomashampel.com/blog/tomcat200…raspberrypi.htm
Früher™ konnte man Mails mittels Telnet schreiben oder vom Mailserver abholen. (So wie man auch Webseiten so 'lesen' konnte) Doch heutzutage, wo alles verschlüsselt ist, geht das nicht mehr.
(Ich hole bei dem einem Programm die Mails mittels 'fetchmail' ab.)
Das Tut von Thomas Hampel habe ich mir durchgelesen und finde es für meinen Zweck nicht schlecht, nur will ich keine Anhänge ausdrucken, sondern den Email Text an sich. was muss da angepasst werden?
was muss da angepasst werden?
Analog zum Part, wo die Anhänge behandelt, z.B. eine Routine einbauen, die alle neuen Mails im MAILDIR/new in ein TMP-Verzeichnis kopiert, ausdruckt und dort löscht. Kopieren/Löschen kann natürlich entfallen, wenn die Mails nach dem Drucken nicht mehr benötigt werden - dann einfach aus MAILDIR/new drucken/löschen.
#! / bin / bash # Parameter BASEDIR = $ (dirname $ 0) CURDIR = $ (pwd) MAILDIR =. / maildata LOGFILE =. / logs / printmail.log ATTACH_DIR =. / attachments # change directory echo "Verzeichnis wechseln zu: $ BASEDIR " cd $ BASEDIR # Protokolldatei erstellen, falls nicht vorhanden Berühren Sie $ LOGFILE Datum +% r -% - d /% - m /% - y >> $ LOGFILE # Mail- Echo abrufen " Nach neuer Mail suchen ... " fetchmail -f ./fetchmail.conf -L $ LOGFILE # verarbeiten neue Mails es nullglob shopt für i in $ MAILDIR / new / * do echo "Verarbeitung: $ i" | tee -a $ LOGFILE uudeview $ i -i -p $ ATTACH_DIR /
# Dateianhänge mit Leerzeichen verarbeiten (danke an Dr.B.)
cd $ ATTACH_DIR
für e in ./*
do
mv "$ e" "$ {e // / _}"
erledigt
für f in * .PDF
do
mv $ f $ {f%. *}. pdf
done
cd $ BASEDIR
# Ende von Dr.B. Patch-
Echo "PDFs drucken" | tee -a $ LOGFILE für x in $ ATTACH_DIR / * pdf. do echo "Druck: $ x" | tee -a $ LOGFILE lpr $ x echo "Datei löschen : $ x" | tee -a $ LOGFILE rm $ x | tee -a $ LOGFILE done echo "Bereinige und entferne alle anderen Anhänge"
rm $ y done # Mail löschen echo "Mail löschen : $ i" | tee -a $ LOGFILE rm $ i | tee -a $ LOGFILE erledigt shopt -u nullglob echo "Job beendet." | tee -a $ LOGFILE cd $ CURDIR
Display More
Warum sind da erstmal soooo viele Leerzeichen drin?
edit: Ursache erkannt, hat der Google Übersetzer reingepoppelt!
Vielleicht könntest ja mal den entsprechenden Part abändern und reinsetzen.
Habe jetzt mal nach der Anleitung probiert und bekomme folgende Ausgabe:
pi@Alarmierungsbox:~/pimailprint $ ./printmail.sh
Switching directory to : .
touch: './logs/printmail.log' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
./printmail.sh: Zeile 13: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Checking for new mail...
Die Logdatei "./logs/printmail.log" existiert nicht, ignoriere die logfile-Option.
5 Nachrichten für depesche@ff-oberroning.de bei pop3.strato.de (437991 Bytes).
procmail: Error while writing to "./logs/printmail.log"
Nachricht depesche@ff-oberroning.de@pop3.strato.de:1 von 5 wird gelesen (4924 Bytes) gelöscht
procmail: Error while writing to "./logs/printmail.log"
Nachricht depesche@ff-oberroning.de@pop3.strato.de:2 von 5 wird gelesen (361806 Bytes) gelöscht
procmail: Error while writing to "./logs/printmail.log"
Nachricht depesche@ff-oberroning.de@pop3.strato.de:3 von 5 wird gelesen (61621 Bytes) gelöscht
procmail: Error while writing to "./logs/printmail.log"
Nachricht depesche@ff-oberroning.de@pop3.strato.de:4 von 5 wird gelesen (4834 Bytes) gelöscht
procmail: Error while writing to "./logs/printmail.log"
Nachricht depesche@ff-oberroning.de@pop3.strato.de:5 von 5 wird gelesen (4806 Bytes) gelöscht
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Processing : ./maildata/new/1609336167.19456_0.Alarmierungsbox
Note: No encoded data found in ./maildata/new/1609336167.19456_0.Alarmierungsbox
./printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1609336167.19456_0.Alarmierungsbox
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Processing : ./maildata/new/1609336167.19459_0.Alarmierungsbox
Loaded from ./maildata/new/1609336167.19459_0.Alarmierungsbox: '' (UNKNOWN.001): part 1 Base64
Loaded from ./maildata/new/1609336167.19459_0.Alarmierungsbox: '' (UNKNOWN.002): part 1 Base64
Loaded from ./maildata/new/1609336167.19459_0.Alarmierungsbox: '' (SMS-Alarmierungstone6-FeuerwehrEinsa.mp3): SMS-Alarmierungstone6-FeuerwehrEinsa.mp3 part 1 Base64
Found 'UNKNOWN.001' State 16 Base64 Parts 1 OK
Found 'UNKNOWN.002' State 16 Base64 Parts 1 OK
Found 'SMS-Alarmierungstone6-FeuerwehrEinsa.mp3' State 16 Base64 Parts 1 OK
Opened file ./maildata/new/1609336167.19459_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/UNKNOWN.001 for writing: No such file or directory
ERROR: while writing ./attachments/UNKNOWN.001 (UNKNOWN.001): File I/O Error
Opened file ./maildata/new/1609336167.19459_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/UNKNOWN.002 for writing: No such file or directory
ERROR: while writing ./attachments/UNKNOWN.002 (UNKNOWN.002): File I/O Error
Opened file ./maildata/new/1609336167.19459_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/SMS-Alarmierungstone6-FeuerwehrEinsa.mp3 for writing: No such file or directory
ERROR: while writing ./attachments/SMS-Alarmierungstone6-FeuerwehrEinsa.mp3 (SMS-Alarmierungstone6-FeuerwehrEinsa.mp3): File I/O Error
0 files decoded from 1 input file, 3 failed
./printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1609336167.19459_0.Alarmierungsbox
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Processing : ./maildata/new/1609336167.19464_0.Alarmierungsbox
Loaded from ./maildata/new/1609336167.19464_0.Alarmierungsbox: 'test' (test): image001.png part 1 Base64
Found 'image001.png' State 16 Base64 Parts 1 OK
Opened file ./maildata/new/1609336167.19464_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/image001.png for writing: No such file or directory
ERROR: while writing ./attachments/image001.png (test): File I/O Error
0 files decoded from 1 input file, 1 failed
./printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1609336167.19464_0.Alarmierungsbox
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Processing : ./maildata/new/1609336168.19466_0.Alarmierungsbox
Note: No encoded data found in ./maildata/new/1609336168.19466_0.Alarmierungsbox
./printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1609336168.19466_0.Alarmierungsbox
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Processing : ./maildata/new/1609336168.19468_0.Alarmierungsbox
Note: No encoded data found in ./maildata/new/1609336168.19468_0.Alarmierungsbox
./printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1609336168.19468_0.Alarmierungsbox
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Job finished.
Display More
Daraus lese ich als Laie, das die Daten zu Strato richtig gesetzt sind, da ja 5 Nachrichten gelesen werden.
Nur der ganze Rest ist etwas verwirrend!
Letztendlich kommt bei Alarm eine Email mit Inhalt (nicht Anhang) und nur der soll ausgedruckt werden (am besten 3 fach)
Die Abfragezeit kann so alle 10-15 Sekunden sein, halt so das Strato nicht meint es ist Ddos-Attack.
Wo muss ich wie ansetzen?
touch: './logs/printmail.log' kann nicht berührt werden: Datei oder Verzeichnis nicht gefunden
Stell erst einmal Sicher, dass es das Verzeichnis gibt und die Datei angelegt und beschrieben werden kann.
So nach dem Testlauf mit einer Email und einem Word Dokument als Anhang kommt folgendes:
pi@Alarmierungsbox:~ $ /home/pi/pimailprint/printmail.sh
Switching directory to : /home/pi/pimailprint
Checking for new mail...
Processing : ./maildata/new/1609513847.9466_0.Alarmierungsbox
Loaded from ./maildata/new/1609513847.9466_0.Alarmierungsbox: 'Einsatz Test' (Einsatz): image001.png part 1 Base64
Loaded from ./maildata/new/1609513847.9466_0.Alarmierungsbox: 'Einsatz Test' (Einsatz): Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx part 1 Base64
Found 'image001.png' State 16 Base64 Parts 1 OK
Found 'Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx' State 16 Base64 Parts 1 OK
Opened file ./maildata/new/1609513847.9466_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/image001.png for writing: No such file or directory
ERROR: while writing ./attachments/image001.png (Einsatz): File I/O Error
Opened file ./maildata/new/1609513847.9466_0.Alarmierungsbox
ERROR: Could not open target file ./attachments/Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx for writing: No such file or directory
ERROR: while writing ./attachments/Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx (Einsatz): File I/O Error
0 files decoded from 1 input file, 2 failed
/home/pi/pimailprint/printmail.sh: Zeile 24: cd: ./attachments: Datei oder Verzeichnis nicht gefunden
mv: './fetchmail.conf' und './fetchmail.conf' sind die gleiche Datei
mv: das Verschieben von './logs' in ein Unterverzeichnis
seiner selbst ('./logs/logs') ist nicht möglich
mv: das Verschieben von './maildata' in ein Unterverzeichnis
seiner selbst ('./maildata/maildata') ist nicht möglich
mv: './printmail.sh' und './printmail.sh' sind die gleiche Datei
mv: './procmail.conf' und './procmail.conf' sind die gleiche Datei
mv: das Verschieben von './sslcerts' in ein Unterverzeichnis
seiner selbst ('./sslcerts/sslcerts') ist nicht möglich
Printing PDFs
Clean up and remove any other attachments
Deleting mail : ./maildata/new/1609513847.9466_0.Alarmierungsbox
Job finished.
pi@Alarmierungsbox:~ $
Display More
Bei dem gefundenen Image001.png handelt es sich wohl um das Image der Signatur.
Was ist mit xxx sind die gleiche Datei immer gemeint?
Das Verzeichnis attachments anlegen werde ich nun mal tun.
Mal sehen was dann ausgegeben wird?
Update:
pi@Alarmierungsbox:~ $ /home/pi/pimailprint/printmail.sh
Switching directory to : /home/pi/pimailprint
Checking for new mail...
Processing : ./maildata/new/1609515127.17229_0.Alarmierungsbox
Loaded from ./maildata/new/1609515127.17229_0.Alarmierungsbox: 'Einsatz' (Einsatz): image001.png part 1 Base64
Loaded from ./maildata/new/1609515127.17229_0.Alarmierungsbox: 'Einsatz' (Einsatz): Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx part 1 Base64
Found 'image001.png' State 16 Base64 Parts 1 OK
Found 'Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx' State 16 Base64 Parts 1 OK
Opened file ./maildata/new/1609515127.17229_0.Alarmierungsbox
File successfully written to ./attachments/image001.png
Opened file ./maildata/new/1609515127.17229_0.Alarmierungsbox
File successfully written to ./attachments/Der Mieter dieser Garage ist Kamerad der Feuerwehr.docx
2 files decoded from 1 input file, 0 failed
mv: './image001.png' und './image001.png' sind die gleiche Datei
Printing PDFs
Clean up and remove any other attachments
Deleting mail : ./maildata/new/1609515127.17229_0.Alarmierungsbox
Job finished.
pi@Alarmierungsbox:~ $
Display More
Meines Erachtens sieht das doch nicht schlecht aus, aber der Drucker schweigt!
Wer weis Rat und kann mir weiter helfen?
Konntest du mittlerweile das Problem lösen ?
Ich steh vor dem gleichen Problem und könnte Hilfestellung gebrauchen.
Das konnte ich leider noch nicht testen.
Was mir jedoch aufgefallen ist, dass ich diselbe Meldung wie in #10 hab. Ich konnte jedoch bisher kein entsprechendes Verzeichnis erstellen.
Ich muss ja zum Erstellen dieses Verzeichnis nicht als Pi Benutzer, sonder in Root sein wenn ich das richtig verstanden habe. Gibt es hier irgend einen speziellen Trick ?
Ich muss ja zum Erstellen dieses Verzeichnis nicht als Pi Benutzer, sonder in Root sein wenn ich das richtig verstanden habe.
Nein, wieso denn das???
In der Beschreibung von Thomas Hampel spielt sich Alles in einem anzulegenden Verzeichnis (z.B.) pimailprint ab. Dort liegt auch das Script:
Das ist ganz normal unterhalb des User-Home-Verzeichnisses (hier von User pi).
Und darin muss es halt auch ein Verzeichnis logs geben.
Also z.B. anlegen per
Okay. Dann werd ich das mal ausprobieren.
Vielen Dank
Das Verzeichnis habe ich nun hinbekommen. Der Befehl funktioniert jedoch immer noch nicht. Er zeigt aktuell folgendes an:
pi@raspberrypi:~/pimailprint $ ./printmail.sh
Switching directory to : .
Checking for new mail...
Processing : ./maildata/new/1740604707.2418_0.raspberrypi
Loaded from ./maildata/new/1740604707.2418_0.raspberrypi: 'test2' (test2): estfax.docx part 1 Base64
Found 'estfax.docx' State 16 Base64 Parts 1 OK
Opened file ./maildata/new/1740604707.2418_0.raspberrypi
File successfully written to ./attachments/estfax.docx
1 file decoded from 1 input file, 0 failed
mv: './estfax.docx' und './estfax.docx' sind dieselbe Datei
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Printing PDFs
Clean up and remove any other attachments
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Deleting mail : ./maildata/new/1740604707.2418_0.raspberrypi
rm: tee: das Entfernen von './maildata/new/1740604707.2418_0.raspberrypi' ist nicht möglich./logs/printmail.log: Datei oder Verzeichnis nicht gefunden: Datei oder Verzeichnis nicht gefunden
tee: ./logs/printmail.log: Datei oder Verzeichnis nicht gefunden
Job finished.
pi@raspberrypi:~/pimailprint $
Display More
ich bin mir nicht ganz sicher, warum beim Befehl mv diese Meldung kommt, bzw. warum es ab diesem Schritt nichts in die Log Datei schreibt. Den Abruf der Mail bis zum Punkt Processing: wird in die Datei hinein geschrieben.
Gibts es da einen Trick oder könnte es auch an was anderem liegen ?
Die Meldung bei mv sagt nur aus, dass diese Datei einen Namen ohne Leerzeichen hat und deshalb nicht umbenannt werden kann.
Und dass das Logfile nicht gefunden wird, liegt vermutlich daran, dass Du die Zeile cd $BASEDIR vergessen hast.
Das Script von Thomas ist leider nicht besonders robust geschrieben.
Don’t have an account yet? Register yourself now and be a part of our community!