PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Python] Mail über Mailx mit Attachment (Anhang)



KRiusd
26.04.2005, 11:42
Hallo zusammen,

ich soll über ein Python-Script eine Mail versenden die im Anhang ausgewählte Dateien eines Ordners enthält! Das ganze soll mit Mailx laufen!

- Die Dateinamen die zu versenden sind stehen in einer Liste (filesToSend)
- Der Pfad zu den Dateien steht in einer Varibale (sendDirPath)
- Subject der Mail, Mailtext und Empfänger stehen ebenfalls in Variablen (mSub, mText, mTo)

Habe schon bischen was ausprobiert:
1. os.popen("(cat "+mText+"; uuencode "+sendDirPath+"/"+filesToSend[1]+" "+filesToSend[1]+") | mailx -s ' "+mSub+" ' "+mTo)

2. os.popen("mailx -s ' "+mSub+" ' "+mTo+" <<-EOF Textblabla ~<! uuencode "+sendDirPath+"/"+filesToSend[1]+" "+filesToSend[1]+" ~. EOF")

Allerdings funktioniert es so nicht! ?(
Hat jemand schon einmal ähnliche Probleme gehabt und vielleicht ein Lösung?


Vielen Dank schon mal

KRiusd

KRiusd
27.04.2005, 14:13
OK hab nochmal weiterprobiert:

os.system("uuencode sendDirPath+"/"+filesToSend[1]+" "+filesToSend[1]+" |mailx -s ' "+mSub+" ' "+mTo)

Nach ausfüllen der Variablen steht dann da:
os.system("uuencode /home/username/dokumente/datei.png datei.png |mailx -s 'Testsubject' meine@mailaddy.de")

Ich bekomme als Meldung: uuencode: ISO8859-1 to 646 conversion: Invalid argument

Ich hab keine Ahnung woran es liegen könnte!
Kennt jemand die fehlermeldung bzw. hat jemand eine Ahnung was zu tun ist?

Bitte helft mir!

Grüße KRiusd

damager
27.04.2005, 14:31
hmmm....
mit mailx tut man doch mit der option -a eine datei anhängen.
korrekt müsste dann doch die syntax heissen:
os.system("echo "email test hier" | mailx -s 'Testsubject' meine@mailaddy.de -a /home/username/dokumente/datei.png")

bei mir funtzt der befehl so....

KRiusd
27.04.2005, 14:42
Da sagt er mir aber: "Mail: illegal option -- a"

Ich steig grad echt nicht mehr durch!

damager
27.04.2005, 14:45
du benutzt doch mailx und nicht mail oder?

Usage: mailx [-BFintv~] [-s subject] [-a attachment] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops] [-R reply-addr] to-addr ... [- sendmail-options ...]
mailx [-BeHiInNv~] [-T name] -f [name]
mailx [-BeinNv~] [-u user]

KRiusd
27.04.2005, 15:03
Ja benutze mailx allerdings zeigt er mir auf der man-Page auch keine option -a an!

Ich muss das Programm bei mir im Geschäft schreiben für meine Ausbildung und ich weis nicht ob das bei uns deaktiviert worden ist!

Kann man Optionen deaktivieren?

damager
27.04.2005, 15:08
hmmmm alte mailx version?
von deaktivierten optionen habe ich auch noch nicht gehört ...

ich benutze das mailx von suse 9.3.
info: http://www.novell.com/products/linuxpackages/professional/mailx.html

KRiusd
27.04.2005, 15:18
ok dann könnte es an der version liegen!

Ich arbeite auf einer SunOS Maschiene! Kann natürlich sein das es dort die Option -a noch nicht gibt!

Ich mach mich da morgen mal bei unseren Experten schlau ob es diese Option bei uns gar nicht gibt oder sie nur deaktiviert worden ist wenn das überhaupt möglich ist! :D

Trotzdem erstmal vielen Dank!

damager
27.04.2005, 15:29
hmmm...hab hier auch solaris 8 maschien und dort hat mailx auch keine option -a.
also haben deine admins sicher auch nix gemacht.

ich sehe da nur 2 möglichkeiten:
- mailx updaten
oder
- doch mail(x) benutzen.
evtl. hilft: http://www.unix.com/showthread.php?p=50520#post50520
weiter.

KRiusd
28.04.2005, 07:27
Also hab mal geschaut!

Auf unseren Servern (SunOS) gibt es die Option wirklich nicht!
Auf den lokalen Rechnern auf denen ich Entwickle schon!

Hab das Script mal auf lokal laufen lassen mit diesem Befehl:

os.system("echo 'Test' | mailx -s 'Hier steht der Betreff' meine@mailaddy.de -a /home/user/dokumente/test.png")

Auf dem lokalen rechner gibt es nun zwar die Option -a, aber ich bekomme nicht die Datei als Attachment sondern nur den Pfad der Datei als Text angezeigt.

Liegt das jetzt an unserem Mailprogramm (Lotus Notes 5) ?
Oder liegt das wieder an der Version von Mailx?

KRiusd
28.04.2005, 07:44
Und noch ein Versuch:

os.system("(cat body.txt; uuencode bild.png bild.png) | mailx -s 'Testsubject' meine@mailaddy.de")

Problem: uuencode sagt mir: 'ISO8859-1 to 646 conversion: Invalid argument' ?(

Was bedeutet das?
Konnte im Netz nichts für mich verständlich klingendes finden!

Grüße KRiusd