通过远程任务发送电子邮件

lovely.mail的Python项目详细描述


==========
可爱。邮件和邮件测试
==============



这个包主要提供了一个简单的方法来使用当前配置测试邮件传递。对于功能测试,无需更改邮件配置


>>;>from lovely.mail import testing

>在设置邮件测试之前,我们需要注册邮件
实用程序。

>;>;>t;从zope.sendmail.mailer导入smtpmailer
>;>>组件。提供实用性(smtpmailer(),
…name='lovely-mailer')

>>gt;来自zope.sendmail.delivery import queuedmaildelivery
>>gt;组件。提供功能(queuedmaildelivery("某些路径"),
…name='lovely-mail-delivery')

现在我们设置测试。这是应该进入您的测试设置功能的代码。

>;>;测试。setup smtp testing('lovely-mailer','lovely-mail delivery',unit_test=true)

zope.sendmail.interfaces导入imailer,imaildelivery
>;>;mailer=component.getutility(imailer,"可爱的邮递员")
>;>;mailer.smtp
<;类"可爱的.mail.testing.testmailerconnection">;

>;>delivery=component.getutility(imaildelivery,"可爱的邮件传递")
>;>delivery.\u queuepath!="some_path"
true


测试提供已发送邮件的列表。

>;测试。sent mails
[]


现在我们发送邮件。

>;messageid=delivery.send('readme',['mailqueue',],'i am a testing mail')
>;测试。sentmails
[]


邮件尚未发送,因为我们需要触发邮件传递。

>;>;testing.trigger mail()
>;>;来自pprint import pprint
>;>;pprint(testing.sentmails)
[('readme',
('mailqueue',),
'邮件ID:<;..>;\ni am测试邮件")]



riggemail()
>;>pprint(testing.sentmails)
[('me@gmail.org',
('you@gmail.org',),
'邮件ID:…\n发件人:me@gmail.org\n收件人:you@gmail.org\n…。\n我的邮件正文')]

",('ich','me@gmail.org'),[('du','you@gmail.org',)],'我的邮件正文')
>;>;testing.sentmails=[]
>;>;testing.triggermail()
>;>;pprint(testing.sentmails)
[('ich<;me@gmail.org>;,
('du<;you@gmail.org>;,),
'邮件ID:…"\nfrom:ich<;me@gmail.org>;\n:du<;you@gmail.org>;\n…\n我的邮件正文')]




附件
----


附件必须作为包含类似文件的对象的元组列表提供
提供"读取"、附件的文件名和mime类型(如果已知)。

>;>from stringio import stringio
>;>f1=stringio("我是文件1的内容")
>;>sendmail('subject',('ich','me@gmail.org'),[('du','you@gmail.org',),
…。我的邮件正文,附件=[(f1,'f1.txt',none)]
>;>testing.sentmails=[]
>;>testing.triggermail()
>;>pprint(testing.sentmails)
[('ich<;me@gmail.org>;',
('du<;you@gmail.org>;,),
'邮件ID:…']
>;>;pprint(测试.sentmail[0][2][0][2].split('\n'))
['message-id:<;..>;',
'content-type:mulpartpartpart/mixed;boundary===========",
'mime版本:1.0',
'subject:subject',
'subject:subject:subject',
'from:ich<;me@gmail.org>;,
'to:du<;you@gmail.org>;',
'date:…',
'date:…',
'>''>'>'''date;内容类型:mulpartpartpart,
'--===…=',
'内容类型:文本/普通;charset="utf-8"',
'mime版本:1.0',
'内容传输编码:7bit',
',
'我的邮件正文',
'--==…==',
'内容类型:应用程序/八位字节流',
'mime版本:1.0',
"内容传输编码:base64",
"内容处理:附件;filename="f1.txt",
',
"ss…",
'--==…=="]


>;>;f1.seek(0)
>;>;sendmail('subject',('ich','me@gmail.org'),[('du','you@gmail.org',)],
"…"我的邮件正文,附件=[(f1,'f1.txt',('text','plain'))])
>;>testing.sentmails=[]
>;>testing.triggemail()
>;>pprint(testing.sentmails)
[('ich<;me@gmail.org>;',
('du<;you@gmail.org>;',),
邮件ID:…')
>;gt;gt;pprint(testing.sentmails[0][2].split('\n'))
['message-id:<;…>;',
'内容类型:multipart/mixed;boundary="==="…=>",
'mime版本:1.0',
'主题:主题',
'发件人:ich<;me@gmail.org>;,
'收件人:du<;you@gmail.org>;',
'日期:…',
',
'--==…==',
'内容类型:文本/纯文本;字符集="UTF-8",
'mime版本:1.0',
'内容传输编码:7bit',
',
',
'我的邮件正文',
'--==…==',
'内容类型:文本/纯文本;字符集="我们"-ascii",
‘mime版本:1.0’,
‘内容传输编码:7bit’,
‘内容处理:附件;filename="f1.txt",
',
,‘我是文件1的内容’,
'--==…=="]

并清理。

>;测试。TearDownsmtptesting()
>>>>邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件群发邮件的变化情况==



之后=======



2009/09/08 09/08 0.3.1
=========




>
>
>
>

>-允许使用DirectMailDelivery进行测试
-允许使用DirectMailDelivery进行测试
-允许使用DirectMailDelivery进行测试
-根据附件类型处理附件


=======



========







======


===

-st因为python 2.5没有
终止,所以在Teardown上操作剩余的QueueProcessThread。


2008/04/22 0.1.3
==
==



-使TestMailer与最新的zope.sendmail包兼容


2007/08/08/23 0.1.1
===



>
-为远程发送邮件任务添加remotemail.py




2007/06/20 0.0.1.0 0.1.0a1
=
=======













==



=>











>-c个倾斜导入



下载
========

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

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody