2017-01-06 3 views
1

Я должен создать электронную почту от питона скрипта вызывающего:питон - подпроцесс предел длины

subprocess.call([ 
    'thunderbird', 
    '-compose', 
    "preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
     preselectid, to, cc, subject, body), 
    ]) 

но электронная почта усечение, когда body «слишком» большой.

Я знаю, что на Windows, существует предел 32768 полукокса (What is the subprocess.Popen max length of the args parameter?), но я на Linux (с помощью ЗШ), и когда вторя строку с

subprocess.call([ 
    'echo', 
    "preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
     preselectid, to, cc, subject, body), 
    ]) 

Я получаю полное и правильное содержание электронной почты ,

Как я могу решить эту проблему?

EDIT: Благодаря @slezica Я обнаружил, что копирование сгенерированного электронного письма и запуск команды из командной строки я получаю, в любом случае, усеченное письмо (на 32303 символа). Проблема thunderbird.

+0

Вы получаете ошибку? Не могли бы вы попробовать еще большее тело с «эхом», если разница в размере между «thunderbird -compose» и «echo» пересекает некоторую границу? –

+2

Попробуйте выполнить вызов из командной строки. Это может быть ограничение 'thunderbird', или, может быть, вы достигли предела с разницей символов между' thunderbird -compose' и 'echo' – slezica

+0

@slezica nice hint (я немой), я отредактировал вопрос – edoz90

ответ

0

Это квази-ответ.

После открытия отчета об ошибке (https://bugzilla.mozilla.org/show_bug.cgi?id=1329312) Я был проинформирован о том, что разработчики Thunderbird в

implemented an option where you can read the message from a file with message=, see bug 882104. That will be shipping in TB 52, so you could use this now in Earlybird.

Смежные вопросы