用python开发邮件管理软件的一些问题
这个学期有软件课设,题目是邮件管理软件。目前主要遇到有如下的困惑,希望大神们能够对熟悉的问题给出相应的看法或者解决办法。
邮件软件界面的设计打算使用pyqt4,个人比较喜欢简约风格,看到了YoMail这个软件被惊艳到了(如下图),所以想问一下pyqt4是否可以实现?如果可以实现,怎么做到无边框效果?
2.关于邮件的接收和发送有没有什么好的模块可以推荐?貌似只有smtplib,pop3,如果觉得有更好的欢迎推荐,最好是有比较详细的文档。
3.课设要求需要实现通信簿的管理,这个该怎么做?pop3或者smtp的模块有这个方法吗?给个思路就好,如果有示例就更好了。
4.这个是最头痛的,就是关于邮件的接收。一直不明白接收到的邮件是以什么形式保存的,数据库还是直接保存为文件?如果保存为文件,那具体是什么文件,html吗?如果是数据库,又是怎么保存的?
回答:
曾经也是用qt做的大作业,但是是课程管理。
无边框的,这个还是比较容易实现的,qt里面我记得有个frameless的初始化参数,setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)。 yomail的界面肯定是有专门的美工设计出来的,想实现一样的估计需要很大力气。可以去模仿, 另外建议搭界面的时候用代码写,而不是可视化拖拽。
邮件的发送 接收 用自带的模块smtplib和email等已经很好用了,经过历史的检验了。
第三个问题不太明白什么意思。
这个就看你自己啦,用数据库的话,可以尝试结构化的nosql,比如MongoDB。 保存为文件的话, 肯定也是xml或者Json这类的易于解析的格式。 关于这个问题,可以看看这http://www.lai18.com/content/...
回答:
通信簿的管理直接使用数据库,类似手机联系人的管理,然后可以在通信簿点联系人进入往来邮件,在邮件页面可以添加邮箱进入通信簿并添加昵称感觉功能就够了
回答:
首先感谢shomy大牛的耐心解答,给了我很多思路,帮助我解决了很多问题。先对我自己的一些问题做出总结。
邮件软件界面的设计打算使用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()
回答:
我也在做这个课程设计,想问问楼主账户的添加是怎么做的,还有用什么控件可以实现写信,收信箱等功能
以上是 用python开发邮件管理软件的一些问题 的全部内容, 来源链接: utcz.com/a/159199.html