Forum: PC-Programmierung Mail-Versand per Script?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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.