Equivalente di write-mime-multipart di Ubuntu?

2

Vorrei generare un documento con codifica multi-mime da usare come dati utente su istanze EC2.

Su Ubuntu, si dovrebbe usare write-mime-multipart per fare ciò, come per queste istruzioni .

Qualcuno sa quale sarebbe l'equivalente della riga di comando OSX?

Grazie!

    
posta Leo 25.03.2014 - 17:21
fonte

2 risposte

3

Ho trovato una soluzione semplice. Il comando write-mime-multipart di Ubuntu è in realtà uno script Python, disponibile qui ( o su una distribuzione Ubuntu, credo).

Ho semplicemente scaricato questo script da usare. Forse non ideale per quanto riguarda il controllo della versione, ma ok per una semplice scrittura credo.

Migliori approcci benvenuti!

    
risposta data 25.03.2014 - 17:31
fonte
0

Non sono riuscito a far funzionare lo script, quindi ne ho creato uno diverso qui

#!/usr/local/bin/python
# Usage
# python utils/multi.py /path/to/cloud.cfg:text/cloud-config /path/to/script.sh:text/x-shellscript

import sys
import email
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

if len(sys.argv) == 1:
    print("%s input-file:type ..." % (sys.argv[0]))
    sys.exit(1)

combined_message = MIMEMultipart()
for i in sys.argv[1:]:
    (filename, format_type) = i.split(":", 1)
    with open(filename) as fh:
        contents = fh.read()
    sub_message = MIMEText(contents, format_type, sys.getdefaultencoding())
    sub_message.add_header('Content-Disposition', 'attachment; file    name="%s"' % (filename))
    combined_message.attach(sub_message)

msg = email.message_from_string(combined_message.as_string())

for part in msg.walk():
    if part.get_content_maintype() == 'text':
        if part['Content-Transfer-Encoding'] in {'quoted-printable', 'base64'}:
            payload = part.get_payload(decode=True)
            del part['Content-Transfer-Encoding']
            part.set_payload(payload)
            email.encoders.encode_7or8bit(part)

# Send the modified message to stdout
print(msg.as_bytes().decode(encoding='UTF-8'))

Fonti: Domanda StackOverflow CloudInit Docks

    
risposta data 30.11.2018 - 11:54
fonte

Leggi altre domande sui tag