发送邮件模块

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我是否需要构造一个带有*非final*但不可变字段的不可变类?   java如何使用jaxb读取属性?   java为什么不打印空值以外的任何内容?   java Struts2如何在不使用struts的情况下重定向到操作。xml?   java方法参数未在其实现中使用   在Java中更改终端内部的变量   Spring中的java依赖项注入失败   java如何使用getAttribute Selenium防止获取重复的HREF   优先级队列的java顺序不符合预期   java如何使用Spring TaskExecutor在应用程序的所有请求中使用单个任务池   java Firebase RecyclerView不会从数据库中检索项目并将其显示在屏幕上。屏幕是空的   java将YUV_420_888转换为字节数组   spring停止使用Java缓存文件   java在执行maven clean安装时,我在eclipse智能家居中遇到了这种错误   stream Java=下载缓冲区未满?冲洗/缓冲是如何工作的?   查询SQL server时重置java JDBC连接   java如何避免在两个函数中使用相同的逻辑。   转换java。lang.Boolean到Scala Boolean