E-Mail mit Anhang mailx

J

joern1

Jungspund
Hallo,

ich versuche eine Mail mit Anhang zu versenden.

System: Solaris
Shell : Bash

Verwendetes Proframm : mailx

Versuch:

uuencode <filename> | mailx -s "subject" <mailadresse>

Vorallem soll zusätzlich zur Anlage auch noch ein Text in die Mail.
Über Hinweise wäre ich sehr dankbar.

Grüße
Jörn
 
Du hast nicht gesagt, was bei Deinem Versuch rausgekommen ist. Wenn er geklappt hat, schreibe doch den Text und das Ergebnis von uuencode zuerst in eine Datei und gib diese dann an mailx weiter.
 
das kann man dann aber nicht mehr uudecoden
m.W. kann mailx keine Dateianhänge verschicken
 
Stand der Dinge:

Bei mir funktioniert nun der folgende Belehl:

cat eingehend_bearbeitet.txt | uuencode eingehend_bearbeitet.txt | mailx -s "TEST REPORT" -r <email_Ruecklauf> <Empfaenger>

Ergebnis : Datei eingehend_bearbeitet.txt als Anlage in der Mail.

Problem: Ich muss nun noch den Mailtext irgendwie in die Mail bekommen.

cat eingehend_bearbeitet.txt | uuencode eingehend_bearbeitet.txt | mailx -s "TEST REPORT" -r <email_Ruecklauf> <Empfaenger> < MAILTEXT.txt

funktioniert hierbei leider nicht, da dann der uuencode befehl ignoriert wird.
 
Hmmm...

Vielleicht so :
cat eingehend_bearbeitet.txt | uuencode eingehend_bearbeitet.txt >> MAILTEXT.txt; mailx -s "TEST REPORT" -r <email_Ruecklauf> <Empfaenger> < MAILTEXT.txt

Du müsstest wohl die MAILTEXT.txt jedesmal wieder neu anlegen.
 
Schon mal so etwas probiert:
Code:
(
cat <<- ENDE1
     Blah blah blah ....
ENDE1

uuencode Anlage Anlage

cat <<- ENDE2
    Nochmal blah ...
ENDE2
) | mailx -s <SUBJECT> <EMPF> ...

Mit den Klammern fasst du den Output von den beiden cat-Befehlen und dem uuencode zusammen und schiebst das alles einfach in den mailx. Natürlich kannst du auch die Texte, die vor und nach der Anlage erscheinen sollen, einfach erst mal in Dateien ablegen, und dann etwas wie
Code:
(
cat text1
uuencode Anlage Anlage
cat text2
) | mailx ...
verwenden.

Gruesse,
A.
 
MetaMail provides two programs to send mail: mailto and metasend. We will use the second one for scripting, because it can be used non-interactively. The most interesting command line arguments of metasend are listed in the following table [refer to metasend(1) for a complete list].
-b batch (non-interactive) mode
-c cc CC address (for copy of the mail)
-f filename Name of file to attach
-m MIME-type MIME content type, e.g. "text/plain" or "application/octet-stream"
-s subject Title (subject) of the mail message
-t to Recipient's address
-n Next file attachment (needed for multiple file attachments)
-D description Description of the file content
-o outputfile Name of an output file. If the -t option is given, the mail is sent directly to the addressee
This new knowledge enables us to send an audio file using "metasend":
$ metasend -b -t ********** -s "Hear our son!" \
-m audio/basic -f crying.au

(von: http://www.shelldorado.com/articles/mailattachments.html)
 
Moin,

danke für die Rückmeldung.

(cat MAIL.txt; uuencode CSVS/Datei_2010-05-27.csv) | mailx -s "TEST REPORT" -r <adresse> <adresse>

Funktioniert leider nicht, da der Befehl nicht zurückkommt. Lange Laufzeit, so dass ein manueller Abbruch erfolgen muss.

(cat MAIL.txt; uuencode CSVS/Datei_2010-05-27.csv CSVS/Datei_2010-05-27.csv) | mailx -s "TEST REPORT" -r <adresse> <adresse>

Dieser Befehl kommt an und wird sofort verarbeitet. Die Alnage sieht allerdings so aus:

+C S- IE:V]M,C$[,#8T,S@P.T=$5D1,979B<')O9#(N,#DX-S,N,3 P-3$X
M,#DU.# Y+C P,#8V-#$V-CM:0C V-#,X,%\V-#,X,# P,3,U,C P,3DR,%\Q
M,%\R,#$P,#4R,3$P,C(R-3 S,#LR-BXP-2XQ,#M04#LQ.TM"05]'1%9?,# Q
M+C S- IE:V]M,C$[,#8T,S@P.T=$5D1,979B<')O9#(N,#$Y,# N,3 P-3(U
M,#<T.3,U+C P,#$W-3<X,#M:0C V-#,X,%])35!?13<P-S-%1#DM,D4Y,RTT
M0D5&+3@T-D0M14-%1C@V1C8X04$S.S(V+C U+C$P.U!0.S@["F5K;VTR,3LP
M-C0S.# [1T161$QE=F)P<F]D,BXP,3DP-"XQ,# U,C4P-S0Y,S4N,# P,3<

Irgendwie scheint hier noch ein uuencode Problem vorzuliegen. Liegt das möglicherweise an meinem Lotus Notes ?
 
Hi,

wenn uuencode nur ein einzelnes Argument mitbekommt, so wird das als Name der Datei beim Auspacken verwendet; die zu kodierende Datei wird über stdin erwartet. Das erklärt schon mal, warum der erste Befehl nichts liefert. (Eingabe von Ctrl-D sollte das dann wenigstens sauber beenden, und zu einer Mail mit leerem Anhang führen.)

Um einzugrenzen, wo das Problem beim zweiten Versuch liegt, bietet sich an, erst einmal die Pipe mit mailx wegzulassen; nach
Code:
(cat MAIL.txt; uuencode CSVS/Datei_2010-05-27.csv CSVS/Datei_2010-05-27.csv)
sollte der Inhalt der MAIL.txt gefolgt von einem Abschnitt, der mit etwas wie
Code:
begin 644 CSVS/Datei_2010-05-27.csv
anfängt und mit einer Zeile
Code:
end
abschliesst (also der kodierten Inhalt des CSV-Files), auf dem Bildschirm angezeigt werden. Wenn das so nicht läuft, hast du wohl ein Problem mit uuencode. (Dann könnte man mal mmencode oder base64 verwenden, oder was auch immer du auf deinem System greifbar hast).

Danach (also wenn bis hierher alles korrekt aussieht) würde ich mal versuchen, das Ding an einen lokalen Acocunt auf dem Solaris-System zu senden, und die Mail mit mailx (auf jeden Fall mit einem Mail-Programm, das von Attachments nichts versteht) direkt anzusehen. Hier sollte der Output von oben (Mail.txt + begin ... end-Abschnitt) komplett sichtbar sein.

Tja, und wenn bis hierher alles klar geht, kann man mal an einen anderen Empfänger schicken, der z.B. kein Lotus Notes verwendet, und sehen, wie das Ding bei ihm ankommt.

Aber check doch einfach mal Schritt für Schritt ab, was läuft, und wo es dann hakt. Mit dem entsprechenden Output kann man dann mal weitersehen.

NB: Der Anhang in deiner letzten Nachricht sieht so aus, als ob er doppelt uuencoded worden wäre; wenn ich da einen begin-Header davorstelle und das Ganze in uudecode pumpe, erhalte ich scheinbar ein COM-File (allerdings ist das Ding nicht komplett). Ist das CSV-File, das du als Anlage verschicken willst, bereits mit uuencode verwurstet worden, oder ist das noch das Original?

Gruss, A.
 
Oder man benutzt gem. meinem Vorschlag metamail, dass das ganze gemäß dem MIME RFC kodiert und damit so ziemlich jedem Standardmailclient die Möglichkeit gibt, mit der Mail was anzufangen..
 
Hallo,

vielen Dank für die nette Antwort. Es ist definitiv ein Lotus Notes Problem. Notes kommt mit der Endung .cv nicht klar. Wenn ich die Datei jedoch als .TXT versende, funktioniert es einwandfrei. Ich werde also mit dem Workaround leben :)


Danke
 
Naja, uuencode ist aber nunmal eher veraltet, wenn man heute eine Mail mit Anhang versendet, dann doch in der Regel als MIME und genau dafür ist metamail gut. Die uuencode Lösung wird übrigens auch in dem Link beschrieben. Ich würde also nicht unbedingt Lotus den Buhmann zuschreiben.
 
Danke saeckereier,

leider steht mir Metamail auf dem server nicht zur Verfügung. Ich muss demnach schon mit Mail oder Mailx arbeiten.

Grüße
Jörn
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

E-Mails mit mutt versenden (HTML und PDF gleichzeitig)

Mail mit mehreren anhängen

Windows clients können nicht mehr auf lange laufendes System zugreifen

Mail per sendmail

Zurück
Oben