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

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第三方库


热门话题
javascript通过WebSocket将服务器时间推送到多个客户端   这种java字节转换是如何工作的   数据库错误。sql。SQLEception:参数索引超出范围(1>参数数,为0)   java如何在搜索时过滤选定的viewpager片段中的recyclerview?   java如何使用OpenCV将图像转换为黑白图像并在ANDROID中消除阴影   Spring MVC项目中的java HTTP服务器状态404错误   Spring MVC中的java JSR303自定义约束验证器   java如何基于另一个ArrayList的值显示ArrayList中的特定项?   java如何在firebase messages节点获取最后发送给我的消息?   部署后在google app engine上运行servlet时发生java错误   java如何使用servlet在两个jsp之间发送数据   java日历年中的周是月中的周   从URL读取一个资源并直接返回这些字节作为REST请求的响应,Java 7和spring MVC 3.2不存储内存