Hallo zusammen, ich moechte gern per cmdline ein paar Mails im HTML-Format verschicken. NEIN - kein Spam! Es geht lediglich um Termine. Eigentlich funktioniert es so ganz prima (DEMO): ---snip --- html-mail.html ----------------------- <html> <font color=darkblue>Testzeile</font><b>1</b><br> Umlaute direkt äöüÄÖÜß<br><br> MfG <b>von mir</b><br><br> </html> -------------------------------------------------- #Test-Einzeiler: mail -s "$(echo -e "cmdline html-mail with äöü \nContent-Type: text/html")" zu.mir@aufs_handy.de < html_mail.html Frage 1) Warum funktioniert der Kram nicht, wenn ich das Leerzeichen zwischen äöü\n weglasse? Steht vor dem Zeilenumbruch kein Umlaut, klappt es. Das Problem macht ein Umlaut vor \n. Dann kommt die Mail als 'plain text' an! Frage 2) Reicht der html-Kram so aus, oder sollte ich zwingend einen kompletten Header einfuegen? Danke schonmal! MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sonntag, 18. September 2011, 20:39:04 schrieb Thomas Moritz:
Hallo zusammen,
ich moechte gern per cmdline ein paar Mails im HTML-Format verschicken. NEIN - kein Spam! Es geht lediglich um Termine.
Eigentlich funktioniert es so ganz prima (DEMO):
---snip --- html-mail.html ----------------------- <html> <font color=darkblue>Testzeile</font><b>1</b><br> Umlaute direkt äöüÄÖÜß<br><br> MfG <b>von mir</b><br><br> </html> --------------------------------------------------
#Test-Einzeiler: mail -s "$(echo -e "cmdline html-mail with äöü \nContent-Type: text/html")" zu.mir@aufs_handy.de < html_mail.html
Frage 1) Warum funktioniert der Kram nicht, wenn ich das Leerzeichen zwischen äöü\n weglasse? Steht vor dem Zeilenumbruch kein Umlaut, klappt es. Das Problem macht ein Umlaut vor \n. Dann kommt die Mail als 'plain text' an!
Frage 2) Reicht der html-Kram so aus, oder sollte ich zwingend einen kompletten Header einfuegen?
Danke schonmal!
MfG Th. Moritz
Hi, muss es nicht Umlaute direkt äö......<br><br> heißen? Gruß Uwe Eggert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sonntag, 18. September 2011 20:47:48 schrieb Uwe Eggert: Hallo Uwe,
muss es nicht Umlaute direkt äö......<br><br> heißen?
In der HTML-Mail eigentlich ja, aber IOS kommt damit auch so klar. Im _Betreff_ der Mail wird HTML jedoch erst anschliessend und fuer den eigentlichen Mail-Inhalt definiert. Vielleicht irre ich mich auch? MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Sun, 18 Sep 2011, Thomas Moritz schrieb:
<html> <font color=darkblue>Testzeile</font><b>1</b><br> Umlaute direkt äöüÄÖÜß<br><br> MfG <b>von mir</b><br><br> </html>
Hier fehlt ein Zeichensatz. Default ist ASCII. Ergo sind die Umlaute "illegal". Entwerder als entieties deklarieren (ä usw.) oder den richtigen Zeichensatz deklarieren. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> ... </body> </html> daß irgendwelche Browser das auch so akzeptieren ist irrelevant.
#Test-Einzeiler: mail -s "$(echo -e "cmdline html-mail with äöü \nContent-Type: text/html")" zu.mir@aufs_handy.de < html_mail.html
Mail-Header sind _IMMER_ ASCII. Jegliches NICHT-ASCII muß kodiert werden, entweder als quoted-printable oder als Base64. Im Beispiel: Subject: cmdline html-mail with =?ISO-8859-15?Q?=E4=F6=FC?= 'mail' ist aber eh nicht sinnvoll für sowas. Nimm lieber mutt, das kümmert sich automatisch um genau so nen Krams, sogar in der default-Config. mutt macht z.B. aus obigem html-Fragment (als /dev/shm/dh/t.html gespeichert) mit: mutt -i /dev/shm/dh/t.html -s "cmdline html-mail with äöü" dh folgende Mail (gekürzt, im Rohformat): ==== Subject: cmdline html-mail with =?iso-8859-15?Q?=E4?= =?iso-8859-15?B?9vw=?= Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable <html> <head> </head> <body> ... </body> </html> ==== Evtl. ist also anhängen (-a DATEI) statt einfügen (-i DATEI) das richtige. Ich verwende kein HTML in Mails. mutt -s "cmdline html-mail with äöü" \ -a /dev/shm/dh/t.html -- dh < /dev/null scheint das zu machen was du willst: ==== Subject: cmdline html-mail with =?iso-8859-15?Q?=E4?= =?iso-8859-15?B?9vw=?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="PEIAKu/WMn1b1Hv9" Content-Disposition: inline [..] --PEIAKu/WMn1b1Hv9 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline --PEIAKu/WMn1b1Hv9 Content-Type: text/html; charset=iso-8859-15 Content-Disposition: attachment; filename="t.html" <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> ... </body> </html> --PEIAKu/WMn1b1Hv9-- ==== Zeichensätze mußt du anpassen. ISO-8859-* lassen sich halt nicht unterscheiden und ich hab mutt halt auf -15 konfiguriert. Kurzum: nimm mutt, nicht mail. Ansonsten gibt's noch andere Anwendungen wie IIRC metamail o.ä., die ebenfalls Krams korrekt kodieren. Bei 'mail' mußt du selber kodieren und die passenden Header erzeugen. -dnh PS: ja, mutt scheint eigenwillig bzgl. Headerkodierungen, aber korrekt war's bisher noch immer ;) -- Wenn zwei, die sich nicht verstehen, wenigstens verstehen, daß sie sich nicht verstehen, dann verstehen sie sich besser, als wenn sie, obwohl sie sich nicht verstehen, nicht einmal verstehen, daß sie sich nicht verstehen. Und das muß man halt erstmal verstehen. -- Oliver Cromm -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sonntag, 18. September 2011 21:56:02 schrieb David Haller: Hallo,
Hier fehlt ein Zeichensatz. Default ist ASCII. Ergo sind die Umlaute "illegal". Entwerder als entieties deklarieren (ä usw.) oder den richtigen Zeichensatz deklarieren.
OK, auf Umlaute kann ich komplett verzichten. Im Betreff sind diese voellig ueberfluessig. Das war nur ein Versuch.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> ... </body> </html>
Das laesst sich problemlos per Script machen.
'mail' ist aber eh nicht sinnvoll für sowas. Nimm lieber mutt
which: no mutt in (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin) Tja, da muss ich wohl doch selbst Hand anlegen. Das Script rennt auf dem Server meines Provider und momentan plain-text. Um die optische Darstellung auf den Handys zu verbessern, moechte ich jedoch auf HTML umbauen. Da ich die Mails per Script zusammenstricken muss (Daten kommen aus einer berechneten Liste), kommt es auf die paar Zeilen zusaetzlichen Code auch nicht an. Ich werde mich also an die Standards halten! (mail + html) MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 19.09.2011 09:26, Thomas Moritz wrote:
Am Sonntag, 18. September 2011 21:56:02 schrieb David Haller:
Hallo,
Hier fehlt ein Zeichensatz. Default ist ASCII. Ergo sind die Umlaute "illegal". Entwerder als entieties deklarieren (ä usw.) oder den richtigen Zeichensatz deklarieren.
OK, auf Umlaute kann ich komplett verzichten. Im Betreff sind diese voellig ueberfluessig. Das war nur ein Versuch.
Im Betreff dürfen keine Umlaute stehen, welche nicht maskiert werden. Dieser ist Teil des Headers, und dort dürfen eben keine Umlaute stehen. Gruß Sandy -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Thomas Moritz schrieb (19.09.2011 09:26 Uhr):
'mail' ist aber eh nicht sinnvoll für sowas. Nimm lieber mutt
which: no mutt in (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin)
Tja, da muss ich wohl doch selbst Hand anlegen. Das Script rennt auf dem Server meines Provider und momentan plain-text. Um die optische Darstellung auf den Handys zu verbessern, moechte ich jedoch auf HTML umbauen.
Da ich die Mails per Script zusammenstricken muss (Daten kommen aus einer berechneten Liste), kommt es auf die paar Zeilen zusaetzlichen Code auch nicht an. Perl? http://www.cyberciti.biz/faq/how-do-i-send-html-email-from-perl/
Marc -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 19 Sep 2011, Thomas Moritz schrieb: [..]
Da ich die Mails per Script zusammenstricken muss (Daten kommen aus einer berechneten Liste), kommt es auf die paar Zeilen zusaetzlichen Code auch nicht an.
Dann guck gleich mal, ob 'recode' vorhanden ist... $ QP="$(echo 'äöüß' | recode latin1..latin1/QP)" $ echo "=?ISO-8859-1?Q?${QP}?=" =?ISO-8859-1?Q?=E4=F6=FC=DF?= Ansonsten empfehle ich dir perl, das kann ja sogar selber Mails verschicken, und eben auch umkodieren etc. und müßte eigentlich installiert sein. Hast du auf der Kiste ein home-Verzeichnis? Da kannst du auch nachinstallieren. -dnh -- Bugzilla beißt nicht und ist viel, viel netter als ich. -- Lars Müller -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 19. September 2011 12:32:13 schrieb David Haller: Auch Hallo,
Da ich die Mails per Script zusammenstricken muss (Daten kommen aus einer berechneten Liste), kommt es auf die paar Zeilen zusaetzlichen Code auch nicht an.
Dann guck gleich mal, ob 'recode' vorhanden ist...
which: no recode in (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin)
Ansonsten empfehle ich dir perl,
Genau damit wollte ich eigentlich nicht mehr anfangen!
das kann ja sogar selber Mails verschicken, und eben auch umkodieren etc. und müßte eigentlich installiert sein.
/usr/bin/perl perl -v This is perl, v5.8.8 built for i686-linux
Hast du auf der Kiste ein home-Verzeichnis?
Nein!
Da kannst du auch nachinstallieren.
mkdir bin cd bin touch mytest vi blabla chmod 755 mytest ./mytest #-> OK! [1] Allerdings ist mein 'bin' nicht im Path, kann aber die Executable indirekt starten ./mytest (wie meine bisherigen Scripterl auch) Hat 'recode' irgendwelche abnormen Abhaengigkeiten? Ich werde mal eine i686-Version rueberschieben und testen... [1] cp mytest /usr/local/bin # Permission denied ...ich bin nur meinusername:nobody :-( MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Tue, 20 Sep 2011, Thomas Moritz schrieb:
Am Montag, 19. September 2011 12:32:13 schrieb David Haller:
Da ich die Mails per Script zusammenstricken muss (Daten kommen aus einer berechneten Liste), kommt es auf die paar Zeilen zusaetzlichen Code auch nicht an.
Dann guck gleich mal, ob 'recode' vorhanden ist...
which: no recode in (/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin)
Ansonsten empfehle ich dir perl,
Genau damit wollte ich eigentlich nicht mehr anfangen!
Naja, ist ja kein Hexenwerk, siehe nebenan.
das kann ja sogar selber Mails verschicken, und eben auch umkodieren etc. und müßte eigentlich installiert sein.
/usr/bin/perl
perl -v This is perl, v5.8.8 built for i686-linux
Gut :)
Hast du auf der Kiste ein home-Verzeichnis?
Nein!
Sicher? getent passwd deinusername | cut -d: -f6
Da kannst du auch nachinstallieren.
mkdir bin cd bin touch mytest vi blabla chmod 755 mytest ./mytest #-> OK! [1]
Allerdings ist mein 'bin' nicht im Path, kann aber die Executable indirekt starten ./mytest (wie meine bisherigen Scripterl auch)
Reicht doch.
Hat 'recode' irgendwelche abnormen Abhaengigkeiten? Ich werde mal eine i686-Version rueberschieben und testen...
$ ldd `which recode` linux-vdso.so.1 => (0x00007fff72d93000) librecode.so.0 => /usr/lib64/librecode.so.0 (0x00007f14dd623000) libc.so.6 => /lib64/libc.so.6 (0x00007f14dd2b6000) /lib64/ld-linux-x86-64.so.2 (0x00007f14dd9e9000) also nur seine eigene lib. Wenn du ./configure mit --enable-static aufrufst und dann nach dem 'make' noch folgendes: $ rm src/recode src/.libs/recode $ make recode_LDADD=./.libs/librecode.a dann bekommst du ein binary, das nur von der libc und ld.so abhängt: $ ldd src/recode linux-vdso.so.1 => (0x00007fff3dbff000) libc.so.6 => /lib64/libc.so.6 (0x00007f28a3c20000) /lib64/ld-linux-x86-64.so.2 (0x00007f28a3f8d000)
[1] cp mytest /usr/local/bin # Permission denied ...ich bin nur meinusername:nobody :-(
Normal. HTH, -dnh -- Sigmonster was here! -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 21. September 2011 11:17:46 schrieb David Haller: Sacht mal, auf der Kiste habe ich 'iconv' und 'sed'! Sollte das nicht reichen um per 'bash' den Kram umzusetzen? Ausserdem kann ich _erzwingen_ , dass _keine_ Umlaute in der Mail vorkommen! Einmal mit 'sed' ueber den Input und Ruhe ist. Dann gibt es nur noch ae, ue, oe usw. Ich sehe das nicht so kompliziert. Meine Ursprungsmail mit den Umlauten war wirklich nur ein Test/Provokation! Mir ging es lediglich darum, ob ich einen _sauberen_ HTML-Header bauen muss. Das wurde schnell geklaert. -> Ja mache ich! MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Wed, 21 Sep 2011, Thomas Moritz schrieb:
Am Mittwoch, 21. September 2011 11:17:46 schrieb David Haller: auf der Kiste habe ich 'iconv' und 'sed'! Sollte das nicht reichen um per 'bash' den Kram umzusetzen?
Sehr umständlich. Du mußt alle Zeichen > 127 kodieren, sowie das Leerzeichen in _. Siehe http://de.wikipedia.org/wiki/Quoted_printable http://tools.ietf.org/html/rfc2045 recode hat praktischerweise und im Ggs. zu iconv "Ausgabeebenen", und da z.B. die für QP.
Ausserdem kann ich _erzwingen_ , dass _keine_ Umlaute in der Mail vorkommen! Einmal mit 'sed' ueber den Input und Ruhe ist. Dann gibt es nur noch ae, ue, oe usw. Ich sehe das nicht so kompliziert. Meine Ursprungsmail mit den Umlauten war wirklich nur ein Test/Provokation! Mir ging es lediglich darum, ob ich einen _sauberen_ HTML-Header bauen muss. Das wurde schnell geklaert. -> Ja mache ich!
Denk auch daran, daß die anderen Header wie From und To/CC/Bcc ggfs. QP kodiert werden müssen. Der Body darf (wenn per 'Content-Transfer-Encoding: 8bit' passend deklariert) auch unkodierte Umlaute / UTF-8 enthalten (-> Content-Type Header). -dnh -- ``I think I recently decided that if pain is the body's way of saying "Wow, shit, stop! Something is wrong here!", then painkillers are our way of saying "Lalalala! I can't hear you!"'' -- Simon Cozens -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 21. September 2011 23:03:54 schrieb David Haller: Hallo,
Sehr umständlich. Du mußt alle Zeichen > 127 kodieren, sowie das Leerzeichen in _. Siehe http://de.wikipedia.org/wiki/Quoted_printable http://tools.ietf.org/html/rfc2045
Kurz und knapp: Ich habe mich etwas in perl und cpan eingelesen... Geht einfacher als gedacht! 'MIME::Lite' kann den ganzen Kram recht simple umsetzen. MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wed, September 21, 2011 9:05 pm, Thomas Moritz wrote:
Am Mittwoch, 21. September 2011 11:17:46 schrieb David Haller:
Sacht mal, auf der Kiste habe ich 'iconv' und 'sed'! Sollte das nicht reichen um per 'bash' den Kram umzusetzen?
QP? umständlich. Hast Du Vim? Damit geht es auch: :%s/[^\d9\d32-\d60\d62-\d126]/\=printf("=%2X", char2nr(submatch(0)))/g :%s/.\{75\}/&=\r/g
Ausserdem kann ich _erzwingen_ , dass _keine_ Umlaute in der Mail vorkommen! Einmal mit 'sed' ueber den Input und Ruhe ist. Dann gibt es nur noch ae, ue, oe usw. Ich sehe das nicht so kompliziert. Meine Ursprungsmail mit den Umlauten war wirklich nur ein Test/Provokation! Mir ging es lediglich darum, ob ich einen _sauberen_ HTML-Header bauen muss. Das wurde schnell geklaert. -> Ja mache ich!
Du kannst natürlich per sed einfach alle Umlaute löschen, bzw ersetzen durch ae etc, aber dann kommt irgendwer und nutzt ein oder ein à oder ... Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 22. September 2011 08:41:14 schrieb Christian Brabandt: Hallo Christian,
Du kannst natürlich per sed einfach alle Umlaute löschen, bzw ersetzen durch ae etc, aber dann kommt irgendwer und nutzt ein oder ein à oder ...
Hier habe ich den Vorteil, dass ich derjenige und _einzige_ bin, der die Daten einpflegt! Das erspart viele Eventualitaeten! Inzwischen habe ich mich etwas in perl und cpan eingelesen und bin ueberrascht, wie einfach das Haendling abgeht. MIME::Lite erledigt ja schon alles im Handumdrehen... MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
hi, schaue mal in: http://de.selfhtml.org Grüße TOM Am Sonntag, 18. September 2011, 20:39:04 schrieb Thomas Moritz:
Hallo zusammen,
ich moechte gern per cmdline ein paar Mails im HTML-Format verschicken. NEIN - kein Spam! Es geht lediglich um Termine.
Eigentlich funktioniert es so ganz prima (DEMO):
---snip --- html-mail.html ----------------------- <html> <font color=darkblue>Testzeile</font><b>1</b><br> Umlaute direkt äöüÄÖÜß<br><br> MfG <b>von mir</b><br><br> </html> --------------------------------------------------
#Test-Einzeiler: mail -s "$(echo -e "cmdline html-mail with äöü \nContent-Type: text/html")" zu.mir@aufs_handy.de < html_mail.html
Frage 1) Warum funktioniert der Kram nicht, wenn ich das Leerzeichen zwischen äöü\n weglasse? Steht vor dem Zeilenumbruch kein Umlaut, klappt es. Das Problem macht ein Umlaut vor \n. Dann kommt die Mail als 'plain text' an!
Frage 2) Reicht der html-Kram so aus, oder sollte ich zwingend einen kompletten Header einfuegen?
Danke schonmal!
MfG Th. Moritz
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (7)
-
Christian Brabandt
-
David Haller
-
Marc Patermann
-
Sandy Drobic
-
Thomas Moritz
-
TOM Claßen
-
Uwe Eggert