Forum: PC-Programmierung Mail-Versand per Script?


von Bauform B. (bauformb)


Lesenswert?

schönen guten Tag!

aus einem Shell-Script kann man mail versenden, so ungefähr
1
$ cat foo | mail -S encoding=quoted-printable -s 'Betreff' user@example.com
foo enthält Umlaute, wahlweise als iso8859-1 oder utf8 -- beides ist 
nicht erlaubt. Jetzt hätte ich erwartet, dass encoding= sowas möglich 
macht. Aber mail (Heirloom 12.5) verschickt den Text immer noch als 
octet-stream. Muss foo schon fertiges quoted-printable sein? Gibt es 
dafür ein Werkzeug? Können die GNU mailutils das?

von Rolf M. (rmagnus)


Lesenswert?

qprint installieren, dann sollte das gehen:
1
qprint --encode < foo | mail -S encoding=quoted-printable -s 'Betreff' user@example.com

von Bauform B. (bauformb)


Lesenswert?

Perfekt, danke! So ein wichtiges tool, und dann nur priority:optional ;)

von 23 (Gast)


Lesenswert?

> nicht erlaubt. Jetzt hätte ich erwartet, dass encoding= sowas möglich


nehme mal an, mailx

https://heirloom.sourceforge.net/mailx/mailx.1.html#13


The character set for outgoing messages is not necessarily the same as 
the one used on the terminal. If an outgoing text message contains 
characters not representable in US-ASCII, the character set being used 
must be declared within its header. Permissible values can be declared 
using the sendcharsets variable, ...

von Eric (Gast)


Lesenswert?

"Content-Type: text/plain; charset=UTF-8"

Oder Du setzt die envars entsprechend in deinem Skript

von Bauform B. (bauformb)


Lesenswert?

Eric schrieb:
> "Content-Type: text/plain; charset=UTF-8"

Das braucht man wohl auch, aber der Test darf doch trotzdem nur 
ASCII-Zeichen enthalten?

von foobar (Gast)


Lesenswert?

> aber der Text darf doch trotzdem nur ASCII-Zeichen enthalten?

Die Zeit, wo die Mailer nur ASCII konnten, ist schon lange vorbei - ich 
sende seit Jahren mit:

  Content-Type: text/plain; charset=UTF-8
  Content-Transfer-Encoding: 8bit

und bisher hat sich noch keiner beschwert.

von (prx) A. K. (prx)


Lesenswert?

Bauform B. schrieb:
> Eric schrieb:
>> "Content-Type: text/plain; charset=UTF-8"
>
> Das braucht man wohl auch, aber der Test darf doch trotzdem nur
> ASCII-Zeichen enthalten?

Wichtig ist der Header, also Mailadressen und Subject. Wenn der 
non-ASCII enthält, wird es oft Ärger geben. Beim Body ist das effektiv 
unkritisch, sofern im Header passend angegeben.

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

foobar schrieb:
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit

Also gut, überredet ;) Und das setzt mailx auch selbsttätig korrekt ein. 
Und charset=iso8859-1, solange nur simple Umlaute im Text sind und sogar 
us-ascii und 7Bit, wenn der ganze Text zufällig nur ASCII ist.

Insofern war mein erster Gedanke "der Text ist utf8 und das müssen die 
Mail-Programme unter sich aushandeln" schon richtig. Es ist nur viel 
raffinierter als ich dachte. Der "Trick" war: in einer reinen 
Posix-Umgebung (LC_CTYPE=POSIX) funktioniert mailx eben wie früher, sehr 
brav. Eigentlich schade, dass ich qprint jetzt doch nicht brauche.

(prx) A. K. schrieb:
> Wichtig ist der Header, also Mailadressen und Subject.

Ja klar, das passt hier ausnahmsweise ganz von selbst.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Oder gleich komplettes Multipart/HTML senden...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.