用python开发邮件管理软件的一些问题

发布于 2022-09-04 01:11:08 字数 560 浏览 24 评论 0

这个学期有软件课设,题目是邮件管理软件。目前主要遇到有如下的困惑,希望大神们能够对熟悉的问题给出相应的看法或者解决办法。

  1. 邮件软件界面的设计打算使用pyqt4,个人比较喜欢简约风格,看到了YoMail这个软件被惊艳到了(如下图),所以想问一下pyqt4是否可以实现?如果可以实现,怎么做到无边框效果?

YoMail

2.关于邮件的接收和发送有没有什么好的模块可以推荐?貌似只有smtplib,pop3,如果觉得有更好的欢迎推荐,最好是有比较详细的文档。

3.课设要求需要实现通信簿的管理,这个该怎么做?pop3或者smtp的模块有这个方法吗?给个思路就好,如果有示例就更好了。

4.这个是最头痛的,就是关于邮件的接收。一直不明白接收到的邮件是以什么形式保存的,数据库还是直接保存为文件?如果保存为文件,那具体是什么文件,html吗?如果是数据库,又是怎么保存的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

彻夜缠绵 2022-09-11 01:11:08

曾经也是用qt做的大作业,但是是课程管理。

  1. 无边框的,这个还是比较容易实现的,qt里面我记得有个frameless的初始化参数,setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)。 yomail的界面肯定是有专门的美工设计出来的,想实现一样的估计需要很大力气。可以去模仿, 另外建议搭界面的时候用代码写,而不是可视化拖拽。

  2. 邮件的发送 接收 用自带的模块smtplib和email等已经很好用了,经过历史的检验了。

  3. 第三个问题不太明白什么意思。

  4. 这个就看你自己啦,用数据库的话,可以尝试结构化的nosql,比如MongoDB。 保存为文件的话, 肯定也是xml或者Json这类的易于解析的格式。 关于这个问题,可以看看这http://www.lai18.com/content/...

毅然前行 2022-09-11 01:11:08

通信簿的管理直接使用数据库,类似手机联系人的管理,然后可以在通信簿点联系人进入往来邮件,在邮件页面可以添加邮箱进入通信簿并添加昵称感觉功能就够了

百合的盛世恋 2022-09-11 01:11:08

首先感谢shomy大牛的耐心解答,给了我很多思路,帮助我解决了很多问题。先对我自己的一些问题做出总结。

  1. 邮件软件界面的设计打算使用pyqt4,个人比较喜欢简约风格,看到了YoMail这个软件被惊艳到了(如下图),所以想问一下pyqt4是否可以实现?如果可以实现,怎么做到无边框效果?

下面代码可实现无边框效果

self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)

2.关于邮件的接收和发送有没有什么好的模块可以推荐?貌似只有smtplib,pop3,如果觉得有更好的欢迎推荐,最好是有比较详细的文档。

最终还是选择了smtplib和pop3,廖雪峰老师的教程可以参考一下。之前找到了PyMail这个库,设计思想是直接调用方法就行了,但是代码中有个莫名其妙的变量,所以运行起来总是报错,email了作者,但是没给答复,所以最终还是选择了smtplib和pop3

3.课设要求需要实现通信簿的管理,这个该怎么做?pop3或者smtp的模块有这个方法吗?给个思路就好,如果有示例就更好了。

通讯录可以通过收到的邮箱中的from_addr获得。

4.这个是最头痛的,就是关于邮件的接收。一直不明白接收到的邮件是以什么形式保存的,数据库还是直接保存为文件?如果保存为文件,那具体是什么文件,html吗?如果是数据库,又是怎么保存的?

这个最后我选择了以文件的形式,因为数据库不太熟练....而且python程序最后还得打包,不太确定是否可以将数据库也打包进去,所以还是选择保险的方式吧。大牛如果看到这,有更好的意见也欢迎说一下你的想法,先谢过了!

最后记录一下关于QlistWidget中的item获取鼠标点击事件的代码实现

# 这一句是我修改了无数次关键词后才找到的例子,感谢!
self.connect(self.emaillist, SIGNAL('itemClicked(QListWidgetItem *)'), self.itemClicked) 

@pyqtSlot()
def itemClicked(self):

    my_currentItem = self.emaillist.currentItem()
    my_text = my_currentItem.text()

    # 获取当前item所在行数
    my_index = self.emaillist.currentRow()
故事与诗 2022-09-11 01:11:08

我也在做这个课程设计,想问问楼主账户的添加是怎么做的,还有用什么控件可以实现写信,收信箱等功能

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文