为分级机和其他服务的电子邮件客户端fless.pro软件

email-client的Python项目详细描述


电子邮件客户

此repo consist email client for[grader](https://github.com/Flesspro/grader)和其他服务和包。在

##安装并运行

您需要python3.7pytest5.0.1make4.1。在

安装:pip安装电子邮件客户端

您还可以看到[PyPi](https://pypi.org/project/email-client/1.3.0/)。在

我们将makefile用于运行,环境变量用于配置。在

您可以找到smtp客户端和imap客户端。如果您愿意,您可以自定义解析电子邮件到smtp客户端,您可以 实施定制策略并使用它们。默认情况下,我们对分级器使用策略。在

清除电子邮件(删除所有电子邮件):

ENV_FILE=./.envs/my_envfile.env CLEAN=YES make clean

##示例

正在创建IMAPClient:

from email_client import client_pkg

client = client_pkg.IMAPClient( imap_host=os.getenv(‘IMAP_HOST’), imap_port=os.getenv(‘IMAP_PORT’), login=os.getenv(‘EMAIL_LOGIN’), password=os.getenv(‘EMAIL_PASSWORD’), extract_strategy=strategy, )

您可以登录:

client.login()

和注销:

client.logout()

几分钟后,您必须再次登录。很多服务器一次自动注销。此外,您还可以清除电子邮件:

client.clean_emails()

您可以设置指定文件夹:

client.clean_emails(‘inbox’)

另一种情况下,您可以收到所有电子邮件:

emails, statuses = client.get_imails(folder=’inbox’)

对于每封电子邮件,您将获得指定的状态。如果takezip(emails,status),你就有对了。您可以设置电子邮件类型, 例如,看不见的

emails, statuses = client.get_imails(email_typeEmailsTypes.UNSEEN, folder=’inbox’)

同样的方法,你可以使SMTP客户端。在

测试

如果我们进行集成测试,我们有几个阶段:

  • 数据生成
  • 创建对象
  • 测试
  • 验证
  • 干净

如果我们进行单元测试,我们有几个阶段:

  • 创建对象
  • 测试
  • 验证

这样,单元测试就是集成测试的一部分。我们使用单元测试进行测试 上下文逻辑一个对象,函数(方法)。例如,我们有以下功能:

def plus(a, b):
return a + b

这是单元测试。我们要测试简单对象。这种情况并非总是可能的。 如果我们需要一些系统和模块的通信,我们需要进行集成测试。 例如,我们测试连接到数据库并从那里收集数据。这是 集成测试。在

所有测试都放在文件夹中:

tests/

如果要运行测试,可以执行以下操作(删除所有电子邮件):

ENV_FILE=.envs/my_envfile.env make test

示例测试.env

EMAIL_TIMEOUT_TEST=1.5 # Timeout for waiting between reading and writing of emails

IMAP_HOST=imap.mail.ru IMAP_PORT=993 SMTP_HOST=smtp.mail.ru SMTP_PORT=587

EMAIL_LOGIN=my@email.ru EMAIL_PASSWORD=my_password

电子邮件(集成)

我们有一些客户需要发送电子邮件:

  • SMTP客户端发送电子邮件
  • IMAP客户端接收电子邮件

对于电子邮件客户,我们没有最好的方式。我们在IMAP客户端和IMAP客户端上测试SMTP客户端 通过SMTP客户端。在

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

推荐PyPI第三方库


热门话题
java如何读取、验证和移动数据。csv文件?   用于在线蛇游戏的java解析scaing   java JavaFX:在窗口上移动元素(阶段)调整大小   mysql如何使用java中的IOUtils包在jsp中显示多个图像?   Java dateFormat不可解析日期异常   spring mvc java。执行单元测试时lang.AssertionError   java在一个webapp中运行多个调度器有什么问题吗?   JAVAlang.ArrayIndexOutofBounds异常:1未来。get()多线程   java使用MDC或spring boot中的任何过滤器屏蔽日志消息中的密码,而不使用logback。xml文件   与应用服务器的java AJP和SSL通信   java Hibernate更新列表中的特定对象   Java小程序:使用keylistener移动多边形   java访问是一个独立于MainActivity的进程   来自服务器的java重复密钥或完整性约束冲突消息:“列“volume”不能为null”   java是否有任何方法可以确保在Flink on job cancel with savepoint上通知所有检查点侦听器检查点完成?