2017-01-06 12 views
1

は、私が呼び出すPythonスクリプトから電子メールを作成する必要があります。pythonのサブプロセスの長さの制限

私はWindows上で32,768文字(What is the subprocess.Popen max length of the args parameter?)の制限があることを知っているが、私は(zshのを使用して)Linux上だと

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

で文字列をエコーするとき、私は完全で正しい電子メールの内容を取得します。

どうすればこの問題を解決できますか?

EDIT: @slezicaのおかげで、生成された電子メールをコピーしてコマンドラインからコマンドを実行することがわかりましたが、とにかく切り捨てられた電子メール(32,303文字)が表示されます。 問題はthunderbirdです。

+0

は、あなたがエラーを取得していることを知らされたのですか? "thunderbird -compose"と "echo"のサイズの違いがある境界を横切る場合、 'echo 'を使ってさらに大きなボディを試すことができますか? –

+2

コマンドラインから呼び出しを実行してみてください。これは「サンダーバード」の制限かもしれません。あるいは、あなたは 'thunderbird -compose'と' echo 'の文字の違いで制限を打ちます。 – slezica

+0

@slezica niceヒント(私はダムです)、質問を編集しました – edoz90

答えて

0

これは疑似回答です。

バグレポートを開いた後(https://bugzilla.mozilla.org/show_bug.cgi?id=1329312は)私は、サンダーバードの開発者

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.