{"id":22328586,"url":"https://github.com/pkg-dot-zip/simplepop3mailclient","last_synced_at":"2025-09-01T17:34:16.523Z","repository":{"id":265770327,"uuid":"862309599","full_name":"pkg-dot-zip/SimplePop3MailClient","owner":"pkg-dot-zip","description":"A very simple POP3 client made in Kotlin for a simple university exercise!","archived":false,"fork":false,"pushed_at":"2024-09-24T19:32:10.000Z","size":732,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T03:47:41.008Z","etag":null,"topics":["kotlin","kotlin-jvm","pop3","pop3-client"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkg-dot-zip.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-24T11:44:03.000Z","updated_at":"2025-03-12T21:20:10.000Z","dependencies_parsed_at":"2024-12-07T15:35:45.307Z","dependency_job_id":null,"html_url":"https://github.com/pkg-dot-zip/SimplePop3MailClient","commit_stats":null,"previous_names":["pkg-dot-zip/simplepop3mailclient"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FSimplePop3MailClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FSimplePop3MailClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FSimplePop3MailClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkg-dot-zip%2FSimplePop3MailClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkg-dot-zip","download_url":"https://codeload.github.com/pkg-dot-zip/SimplePop3MailClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245600578,"owners_count":20642321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["kotlin","kotlin-jvm","pop3","pop3-client"],"created_at":"2024-12-04T03:13:03.134Z","updated_at":"2025-03-26T06:25:59.358Z","avatar_url":"https://github.com/pkg-dot-zip.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pkg-dot-zip/SimplePop3MailClient/\" rel=\"noopener\"\u003e\n \u003cimg width=400px height=400px src=\"docs/logo.png\" alt=\"Project logo\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eSimplePop3MailClient\u003c/h3\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  [![Stars](https://img.shields.io/github/stars/pkg-dot-zip/SimplePop3MailClient.svg)](https://github.com/pkg-dot-zip/SimplePop3MailClient/stargazers)\n  [![GitHub Issues](https://img.shields.io/github/issues/pkg-dot-zip/SimplePop3MailClient.svg)](https://github.com/pkg-dot-zip/SimplePop3MailClient/issues)\n  [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/pkg-dot-zip/SimplePop3MailClient.svg)](https://github.com/pkg-dot-zip/SimplePop3MailClient/pulls)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003eA very simple POP3 client made in \u003ca href=\"https://kotlinlang.org/\"\u003eKotlin\u003c/a\u003e for a simple univeristy exercise!\n\u003c/p\u003e\n\n## 📝 Table of Contents\n- [About](#about)\n- [Usage](#usage)\n- [Built Using](#built_using)\n- [Authors](#authors)\n\n## 🧐 About \u003ca name=\"about\"\u003e\u003c/a\u003e\nThis repository contains a simple POP3 client built in Kotlin as part of a university assignment. The purpose of the project is to demonstrate socket programming by creating a basic POP3 email client that connects to a mail server, retrieves emails, and displays their subjects on the console.\n\n### What does it do? 🤔\nThe project establishes a secure SSL connection to a specified POP3 server, authenticates using your credentials, and retrieves the list of emails in your inbox. It then fetches and displays the subject lines of those emails. The server, username, and password are configurable through environment variables for security and flexibility. **It demonstrates how to interact with a POP3 mail server from scratch without using a pre-built POP library.**\n\n### Why?! 😱\nThis project is a practice assignment designed to improve skills in network socket programming and application protocols. The assignment required us to implement a POP3 client from the ground up, handling connection, authentication, and retrieving email data. This was done without relying on pre-existing POP3 libraries, encouraging us to understand how the protocol works at a deeper level. The added challenge was implementing secure socket communication due to modern providers' requirements for SSL/TLS connections.\n\nThis exercise **builds** a solid foundation in network programming and **reinforces** protocol handling skills.\n\n### Features 🌟\n- Establish a secure connection to a POP3 server (SSL).\n- Authenticate with the provided username and password.\n- List and retrieve emails from the server.\n- Display the headers (e.g., Subject, From, To, Date) of each email.\n- Basic logging to track activity (connected, command sent, response received).\n\n## 🎈 Usage \u003ca name=\"usage\"\u003e\u003c/a\u003e\n1. Clone the repository.\n1. Open the project in [IntelliJ](https://www.jetbrains.com/idea/).\n1. Create a .env file in the project root directory.\n1. Create values for MAIL_USERNAME \u0026 MAIL_PASSWORD.\n1. Run the `main()` method and enjoy!\n\n## ⛏️ Built Using \u003ca name = \"built_using\"\u003e\u003c/a\u003e\n- [IntelliJ](https://www.jetbrains.com/idea/) - IDE used\n- [Kotlin](https://kotlinlang.org/) - Language used to program in\n- [kotlin-logging](https://github.com/oshai/kotlin-logging) - Lightweight Multiplatform logging framework for Kotlin. A convenient and performant logging facade\n- [Dotenv](https://github.com/cdimascio/dotenv-kotlin) - Dotenv is a module that loads environment variables from a .env file\n\n## ✍️ Authors \u003ca name = \"authors\"\u003e\u003c/a\u003e\n- [@OnsPetruske](https://github.com/pkg-dot-zip) - Idea \u0026 Initial work.\n\nSee also the list of [contributors](https://github.com/pkg-dot-zip/KobwebPortfolioTemplate/contributors) who participated in this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg-dot-zip%2Fsimplepop3mailclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkg-dot-zip%2Fsimplepop3mailclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkg-dot-zip%2Fsimplepop3mailclient/lists"}