• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung

Mail mit Anhang optimiert für Apple Mail auf OS X 10.6

silmor

Golden Delicious
Registriert
11.12.08
Beiträge
9
Hallo,

Ich stehe vor folgendem Problem. Habe ein kleines Skript geschrieben, dass von einer Asterisk Anlage .wav Dateien versenden soll. Rein über den Befehl "uuencode my.wav | mail -s mySubject theRecipient" kann Apple Mail den Anhang nicht mit Quickview öffnen. Das wäre aber gerade bei Voicbox Nachrichten sehr praktisch. Ich habe ein Skript geschrieben, dass die den Body der Mail so erstellt dass das mail wie gewünscht in Apple Mail lesbar ist. Das Problem ist nur, dass auch in den Header zwei Zeilen müssen:

MIME-Version: 1.0
Content-type: multipart/mixed; boundary="voicemail_14434821850535700"

Und zwar so dass keine Leerzeile zwischen den davorliegenden von "mail" erstellten MIME-Definitionen vorhanden ist. Die fügt dass liebe Programm selber dazu. Gibt einen Weg den Header der Message zu manipulieren? Müssten ja echt nur zwei Zeilen dazu. Bzw.: In der jetzigen Form ist eine Leerzeile zu viel, wenn ich das empfangene mail händisch um diese Zeile erleichtere, zeigt Quickview alles an.

Hier das Skript, dass den Job fast gut macht:
#!/bin/sh

##Variable Definitions
# Recipient of the message and subject
messageRecipient="[email protected]"
messageSubject="Voicemail"

#boundary for MIME-multiparts of the mail`s body
boundary="voicemail_14434821850535700"

#Path to attachment input file
attachment="msg0001.WAV"

##Preparing the attachment for Apple Mail recognition
#encode the source-file with the base64 algorithm
uuencode -m $attachment -p > uuEncodedAttachmentBase64

#get rid of the first line of uuEncodedAttachmentBase64
#which states "begin-base64 644 -p"
awk 'FNR>1' uuEncodedAttachmentBase64 > uuEncodedAttachmentBase64Clean
#freeing space
rm uuEncodedAttachmentBase64


##Now Adding the Mime Definitions
#the following two lines belong to the header of the mail, but
#appear in the body after a line break
(
cat <<EOF
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="$boundary"

This is a multi-part message in MIME format.

--$boundary
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

--$boundary
Content-Type: audio/x-WAV; name="$attachment"
Content-Transfer-Encoding: base64
Content-Description: Voicemail sound attachment.
Content-Disposition: attachment; filename="$attachment"

$(cat uuEncodedAttachmentBase64Clean)

--$boundary--
EOF
) | mail -s $messageSubject $messageRecipient
#freeing space
rm uuEncodedAttachmentBase64Clean

Für Hilfe wäre ich sehr dankbar, stehe da grad echt an. Laufen wird das Skript auf einer Debian Linux Maschine. Das häßlichste Gerät in unserem Serverschrank ;)

Grüße,
Silmor.
 
Registriert
17.08.06
Beiträge
37
Mach es dir doch etwas leichter, und installiere dir auf dem Server mutt - dann reicht ein Einzeiler:
Code:
mutt -s "Betreff" -a /Pfad/zur/Datei.wav [email protected] < restliche_nachricht.txt

Viel Spass!
 

silmor

Golden Delicious
Registriert
11.12.08
Beiträge
9
Glaube eigentlich auch, dass das die sauberste Löung wäre mutt zu verwenden. Das Problem ist nur, dass ich auf dem betreffenden Gerät keinen Zugriff habe und die Kollegen seit Wochen nicht in der Lage sind eine Löung zu präsentieren. Deswegen der etwas krückenhafte Ansatz über die Bash mit Bordmitteln. Aber eine funktionierende Version des Skripts liegt auch schon wieder mehr als eine Woche bei der betreffenden Firma. Getan hat sich aber immer noch nichts ;)