python - 子进程长度限制
python - subprocess length limit
我必须从 python 脚本调用创建电子邮件:
subprocess.call([
'thunderbird',
'-compose',
"preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
preselectid, to, cc, subject, body),
])
但是当 body
是 "too" 大时,电子邮件被截断。
我知道在 Windows 上有 32,768 个字符的限制(What is the subprocess.Popen max length of the args parameter?),但我在 Linux(使用 zsh)上并且当用 [= 回显字符串时16=]
subprocess.call([
'echo',
"preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
preselectid, to, cc, subject, body),
])
我得到了完整正确的邮件内容。
我该如何解决这个问题?
编辑:
感谢@slezica,我发现复制粘贴生成的电子邮件和 运行 来自命令行的命令,无论如何,截断的电子邮件(在 32,303 字符处)。
问题是 thunderbird
.
这是准答案。
打开错误报告后 (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.
我必须从 python 脚本调用创建电子邮件:
subprocess.call([
'thunderbird',
'-compose',
"preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
preselectid, to, cc, subject, body),
])
但是当 body
是 "too" 大时,电子邮件被截断。
我知道在 Windows 上有 32,768 个字符的限制(What is the subprocess.Popen max length of the args parameter?),但我在 Linux(使用 zsh)上并且当用 [= 回显字符串时16=]
subprocess.call([
'echo',
"preselectid='{}',to='{}',cc='{}',subject='{}',body='{}'".format(
preselectid, to, cc, subject, body),
])
我得到了完整正确的邮件内容。
我该如何解决这个问题?
编辑:
感谢@slezica,我发现复制粘贴生成的电子邮件和 运行 来自命令行的命令,无论如何,截断的电子邮件(在 32,303 字符处)。
问题是 thunderbird
.
这是准答案。
打开错误报告后 (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.