发送邮件模块

fio_mail的Python项目详细描述


尝试发送邮件图片::https://secure.travis-ci.org/fulfilio/trytond-mail.png?branch=development
:target:https://travis ci.org/fulfillio/trytond mail

一个不仅仅是发送电子邮件!
--------


经常需要从Tryton模块发送电子邮件。此模块提供了一个方便且一致的api来生成电子邮件,从而使生成邮件变得更加容易。此外,该模块还为您提供了一些在发送电子邮件时有用的功能(模板
继承、过滤器)。


安装代码块:sh

pip install fio_mail

…提示:

请记住安装与trytond版本兼容的版本。


或者可以将该模块作为依赖项添加到您的模块中。代码块::python

fb/tryton.cfg l6>;`
例如。


如果使用setup.py安装模块,请记住将模块的前缀设置为
fio。来自"销售确认电子邮件模块"的"setup.py文件"https://github.com/fulfilio/trytond sale confirmation email/blob/01e0887bfa96044318b0bf7b43094b3ee4a1e2fb/setup.py"l94>;""销售确认电子邮件模块"lt;https://github.com/fulfilio/trytond sale confirmation email>;"`
就是一个很好的例子。

quicks开始
----


下面是一个代码示例,如果您希望在确认销售订单时发送电子邮件


…代码块:python

def confirm(cls,sales):
mail=pool().get('mail.mail')

sage=mail.render_email(
from_email='order-confirmation@mydomain.com',
to=[sale.party.email],
subject='your order is confirmation',
text_template='my_module/emails/order confirmatied.txt',
sale=self,#传递到模板上下文

然后可以使用smtp服务器发送。

…提示:

使用
`电子邮件队列<;https://github.com/fulfillio/email queue>;``模块代替。



呈现模板
``````````````````````````````````

电子邮件至少需要指定一个"html"或"text"模板。建议同时指定这两者,因为有些电子邮件客户端希望在可用时显示文本内容。


同时指定文本和HTML部分

。代码块:pythons/honking email.html',



模板名称的格式应为:
`<;模块名称>;/path/to/email/template`.

提示:

生意是独一无二的,他们的电子邮件也应该如此。您可能希望
向模板中添加内容、更改设计或完全覆盖
电子邮件。如果您的目标是添加(扩展)电子邮件,则API允许您在不重复自己的情况下进行添加。


在下游模块中,扩展模板

。代码块:html+jinja

{%extends'sale confirmation email/email//sale confirmation html.html%}

{%block footer%}
{{{{super()}
<;br/>;
请访问我们的<;a href="https://facebook.com/mybusiness">;facebook<;/a>;
{%endblock footer%}

mplate与
`sale confirmation email module<;https://github.com/fulfilio/trytond sale confirmation email>;捆绑在一起,扩展为添加到facebook页面的链接。

如果您熟悉
`jinja2<;http://jinja.pocoo.org/>;``模板引擎,则此模式很常见。您可以从"jinja2 docs<;http://jinja.pocoo.org/docs/dev/templates/template inheritance>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `还有标题。接受参数的过滤器在
参数周围有括号,就像函数调用一样。此示例将使用逗号连接列表:
`{{list join(',')}``。

jinja文档中的"内置筛选器列表"lt;http://jinja.pocoo.org/docs/dev/templates/内置筛选器列表>;`
描述了所有内置筛选器。此外,
此模块还提供以下筛选器:

date format(date,format="medium')
+++++++++++++++++++++++++++有关其他
可能的格式,请参阅
`babel documentation<;http://babel.pocoo.org/docs/dates/date and time>;` `.


示例

代码块::html+jinja

<;td>;日期<;td>;
<;td>;{sale.date date format}<;td>;


datetimeformat(datetime,format)
+++++++++++++++++++++++有关其他
可能的格式,请参阅
`babel documentation<;http://babel.pocoo.org/docs/dates/date and time>;` `.


示例

代码块:html+jinja

有关更多格式信息,请参阅
`babel documentation<;http://babel.pocoo.org/docs/api/numbers/?highlight=format_currency babel.numbers.format_currency>;`


示例

…代码块::html+jinja

<;td>;总值<;td>;
<;td>;{sale.total_amount_currencyformat(sale.currency.code)}<;td>;



to、cc和bcc
```````````````````````````````````````
向某组收件人发送电子邮件与在电子邮件中设置
若要指示收件人,请将收件人列表发送到"to"参数。

因此,"render\u email"方法只接受"cc"参数
。要发送"bcc",可以在使用smtpserver发送电子邮件时将
同一消息发送给收件人。


示例

代码块::python

email_message=mail.render_email(
到=['you@somewhere.com','youtoo@somewhere.com',
cc=['myself@mydomain.com',

/>从"email="me@mydomain.com",
subject="一个很棒的按喇叭的电子邮件",
text\u template="my\u module/emails/honking email.txt",




其中键表示文件名,值是要附加的内容的缓冲流。如果存在附件,则邮件类型将自动更改为"multipart/mixed"。附件应显示为电子邮件客户端上的可下载附件


代码块::python

er copy.pdf:订购副本,
"product photo.png":产品照片,
},


其他常见的东西
来自"email="me@mydomain.com",
to=['you@somewhere.com",
subject="一封很棒的按喇叭的电子邮件",
文本模板="我的模块/email/honking email.txt,
html_template='my_module/emails/honking email.html',



authors and contributors
----


此模块在"fulfil.io<;http://www.fulfil.io>;"上构建。

专业支持
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————致:支持@fulfil.io>;``团队。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?