{"id":16569878,"url":"https://github.com/liziwl/im-over-email","last_synced_at":"2026-06-08T10:02:11.519Z","repository":{"id":105338901,"uuid":"113963414","full_name":"liziwl/IM-over-Email","owner":"liziwl","description":"IM over Email with encryption","archived":false,"fork":false,"pushed_at":"2019-01-29T02:57:30.000Z","size":31564,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-05T12:47:57.393Z","etag":null,"topics":["email","instant-messaging","pgp-keyserver","pyqt5"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liziwl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"Security/.ipynb_checkpoints/RSA and ChaCha20-checkpoint.ipynb","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-12T08:24:26.000Z","updated_at":"2019-01-29T02:57:16.000Z","dependencies_parsed_at":"2023-06-26T00:00:57.803Z","dependency_job_id":null,"html_url":"https://github.com/liziwl/IM-over-Email","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/liziwl/IM-over-Email","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liziwl%2FIM-over-Email","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liziwl%2FIM-over-Email/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liziwl%2FIM-over-Email/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liziwl%2FIM-over-Email/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liziwl","download_url":"https://codeload.github.com/liziwl/IM-over-Email/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liziwl%2FIM-over-Email/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34057158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["email","instant-messaging","pgp-keyserver","pyqt5"],"created_at":"2024-10-11T21:15:28.034Z","updated_at":"2026-06-08T10:02:11.499Z","avatar_url":"https://github.com/liziwl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IM over Email with encryption\nIM over Email with encryption, this Computer Network (CS305) Project\n\n## 项目详细报告\n[Finial report](./Report)\n\n## 准备环境  \n* Python3\n* rsa  \n* cryptography  \n* imapy  \n* smtplib  \n* PyQt5  \n\n## 运行说明  \n运行UI下的main.py即可  \n\n## 注意事项  \n登陆用户名是邮箱地址，密码是允许imapy登陆SMTP服务器的密码，比如163邮箱的授权码，不一定是邮箱客户端的登陆密码。新用户登陆时会生成新的公钥和私钥，以及这个用户的数据库。数据库，私钥（用登陆密码加密）存在本地，公钥上传到服务器，如果服务器上已经存在这个用户的公钥则会被顶替掉，所以要接受邮件一定要保证自己现在的私钥和服务器上的公钥匹配。  \n登陆已有用户，一开始不会显示记录，任意点击一个对话就可以显示出数据库中聊天记录  \n登陆邮箱，可以看到这个应用发送接受的消息和附件都是被加密过的  \n\n## 如何测试\n例如用邮箱A，B测试：  \n### 第一次测试以及收发消息\n\u003e1. 检查并先删除项目下的A，B用户文件夹（如果存在)\n\u003e2. 检查并删除Main下的main.db中A,B的记录（否则应用会认为A，B时老用户而造成异常）\n\u003e3. 登陆A邮箱（SMTP服务密码，如163邮箱的授权码，不是客户端密码）\n\u003e4. 登陆B邮箱，这样保证了服务器上存储了最新的A，B的公钥，与本地匹配\n\u003e5. 运行两次UI下的main.py,分别登陆邮箱A，B  \n\u003e6. A界面，点击add contact 填入B的邮箱和你想要的名字  \n\u003e7. A界面，点击creat group 勾选刚才添加的A，并*命名群聊名称，不能有相同的群聊名称*  \n\u003e8. 点击左侧的对话，发送消息并点击send，文本框中的文字过一小段会消失（代表发送成功）  \n\u003e9. 等待一会，会发现A，B两个界面出现刚才A发送的消息并且B会自动创建一个对话（但是不会添加联系人）  \n### 扩展功能的测试    \n#### 1.群聊  \n\u003e1. 点击creat group 勾选多个联系人，其余相同  \n#### 2.发送图片或附件  \n\u003e1. 发送文本框 send 按钮左上，选择一个文件（图片），点击确定并且发送  \n\u003e2. 登陆任意收信人账户（可能是群聊），等待一会检查该账户文件夹下FileRecv文件夹，收到的附件会存放在此  \n#### 3.block unblock联系人  \n\u003e1. 双击任意会话，会弹出一个显示这个群聊所有成员的对话框  \n\u003e2. 右击想要屏蔽的邮箱地址，点击block\n\u003e3. 点击ok返回，再次单机此对话，发现该用户的消息不再显示  \n\u003e4. 再次双击此对话，右击刚才屏蔽的邮箱地址，点击unblock  \n\u003e5. 点击ok返回，再次单机此对话，发现该用户的消息重新显示  \n## 测试邮箱提供  \n这些邮箱是设置好的，可以直接使用  \n本应用用 smtp password 登陆，直接登陆邮箱用login password登陆  \n可能有很多人同时使用这些邮箱测试，请确保按照说明进行  \nuser_config = {  \n        \"account\": \"gywang97@163.com\",  \n        \"smtp password\": \"1207wang\",  \n        \"login password\": \"wang1207\",  \n        \"imap_server\": \"imap.163.com\",  \n        \"imap_port\": 993,  \n        \"smtp_server\": \"smtp.163.com\",  \n        \"smtp_port\": 25  \n    }  \n    \nuser_config = {  \n        \"account\": \"gywang97_2@163.com\",  \n        \"smtp password\": \"1207wang\",  \n        \"login password\": \"wang1207\",  \n        \"imap_server\": \"imap.163.com\",  \n        \"imap_port\": 993,  \n        \"smtp_server\": \"smtp.163.com\",  \n        \"smtp_port\": 25  \n    }   \n    \nuser_config = {  \n        \"account\": \"m13751098406_2@163.com\",  \n        \"smtp password\": \"m1234567\",  \n        \"login password\": \"m13751098406\"  \n        \"imap_server\": \"imap.163.com\",  \n        \"imap_port\": 993,  \n        \"smtp_server\": \"smtp.163.com\",  \n        \"smtp_port\": 25  \n    }  \n    \nuser_config = {  \n        \"account\": \"pengym_111@163.com\",  \n        \"smtp password\": \"hvwoTxJndBEi8B4G\",  \n        \"login password\":\"zSuKvfnUuqr5pUj\",  \n        \"imap_server\": \"imap.163.com\",  \n        \"imap_port\": 993,  \n        \"smtp_server\": \"smtp.163.com\",  \n        \"smtp_port\": 25  \n   }  \n## 联系我们：  \n有任何问题请发送至下面邮箱：\n\n* 11510050@mail.sustc.edu.cn\n* 11510035@mail.sustc.edu.cn\n* 11510352@mail.sustc.edu.cn\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliziwl%2Fim-over-email","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliziwl%2Fim-over-email","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliziwl%2Fim-over-email/lists"}