MIMETools提供了用于DocumentTemplate的``dtml-mime``标签。
项目描述
Products.MIMETools
目前,MIMETools产品的唯一功能是为DocumentTemplate发行版提供<dtml-mime> DTML标签。
<dtml-mime>标签用于构建MIME容器。 <dtml-mime>标签的语法是
<dtml-mime type="x" disposition="y" encode="z"> Contents of first part <dtml-boundary type="x" disposition="y" encode="z"> Contents of second part <dtml-boundary type="x" disposition="y" encode="z"> Contents of nth part </dtml-mime>
标签之间的数据区域,称为块,将被编码为“encode”标签属性中指定的内容。如果没有指定编码,则默认为“base64”。有效的编码选项包括“base64”、“quoted-printable”和“7bit”。如果将“encode”属性设置为“7bit”,则不对块进行编码,并假定数据为有效的MIME格式。
如果未指定特定块的“disposition”属性,则不会在该块的MIME部分中包含“Content-Disposition:” MIME头。
整个MIME容器,从开头的“mime”标签到结尾,其“Content-Type:” MIME头被设置为“multipart/mixed”。
例如,以下DTML
<dtml-mime encode="7bit" type="text/plain"> This is the first part. <dtml-boundary encode="base64" type="text/plain"> This is the second. </dtml-mime>
渲染成以下文本
Content-Type: multipart/mixed; boundary="216.164.72.30.501.1550.923070182.795.22531" --216.164.72.30.501.1550.923070182.795.22531 Content-Type: text/plain Content-Transfer-Encoding: 7bit This is the first part. --216.164.72.30.501.1550.923070182.795.22531 Content-Type: text/plain Content-Transfer-Encoding: base64 VGhpcyBpcyB0aGUgc2Vjb25kLgo= --216.164.72.30.501.1550.923070182.795.22531--
dtml-mime 标签与dtml-sendmail 标签结合使用特别有用。这允许Zope在电子邮件中发送附件。以下是一个示例。
创建一个名为“input”的DTML方法,代码如下
<dtml-var standard_html_header> <form method="post" action="send" ENCTYPE="multipart/form-data"> <input type="file" name="afile"><br> Send to:<input type="textbox" name="who"/><br/> <input type="submit" value="Send"/> </form> <dtml-var standard_html_footer>
创建另一个名为“send”的DTML方法,代码如下
<dtml-var standard_html_header> <dtml-sendmail smtphost="localhost"> From: michel@digicool.com To: <dtml-var who> <dtml-mime type="text/plain" encode="7bit"> Hi <dtml-var who>, someone sent you this attachment. <dtml-boundary type="application/octet-stream" disposition="attachment" encode="base64"><dtml-var "afile.read()"></dtml-mime> </dtml-sendmail> Mail with attachment was sent. <dtml-var standard_html_footer>
请注意,“To:”头和dtml-mime 标签之间没有空行。如果在它们之间插入空行,则消息将不会被接收邮件阅读器解释为多部分。
还要注意,在dtml-boundary 标签和dtml-var 标签之间,或者dtml-var 标签的结尾和dtml-mime 标签的结尾之间没有换行。这很重要,如果你用换行符分隔标签,那么它们将被编码并包含在MIME部分中,这可能不是你想要的。
根据MIME规范,dtml-mime 标签可以任意嵌套在dtml-mime 标签中。
变更日志
4.0 (2023-02-01)
删除对Python 2.7、3.5、3.6的支持。
3.3 (2022-12-16)
修复针对Zope 4的测试中隐藏的buildout配置错误。
添加对Python 3.10和3.11的支持。
3.2 (2021-03-16)
添加对Python 3.9的支持。
3.1 (2020-02-11)
修复了linting问题。
将一些导入更改为防止DeprecationWarnings。
3.0 (2019-05-20)
使用Python的email模块重新实现了功能。
添加了对Python 3.5、3.6、3.7和3.8的支持。
将文档转换为标准的dtml表示法。
添加了tox测试配置。
完整的linting。
测试覆盖率提高到超过90%。
与DocumentTemplate 3.x和Zope 4兼容。
2.13.0 (2010-07-10)
PEP8清理并添加了基本测试。
作为独立软件包发布。
项目详情
Products.MIMETools-4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1b8af3a1eced479799321e7c62a49ed6b14b2361ea24e124497e8307a006caa2 |
|
MD5 | 89280af9b43353d67f7e267a7feb7f18 |
|
BLAKE2b-256 | 1f08e7131c6a5a4f7991ad863f685475639eddc0fd18036485bb2bbbc6f7d013 |
Products.MIMETools-4.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 290b0535a32e6a7c9c77b45673095b233fec6451c940f0d8e90f85edb23c58fb |
|
MD5 | 74d5335347ba1ed7555de154524ce4c1 |
|
BLAKE2b-256 | 8ee4732433b32bae9e3e1d901a88738278cf2636b227d055241c06272813bceb |