{"id":36491676,"url":"https://github.com/8thgencore/mailfort","last_synced_at":"2026-01-12T01:56:29.704Z","repository":{"id":224069124,"uuid":"762202589","full_name":"8thgencore/mailfort","owner":"8thgencore","description":"Mail client write in Golang with using REST or gRPC","archived":false,"fork":false,"pushed_at":"2024-12-18T13:22:33.000Z","size":112,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-18T14:35:30.758Z","etag":null,"topics":["golang","grpc","mail","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Go","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/8thgencore.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-02-23T09:41:21.000Z","updated_at":"2024-12-18T13:22:37.000Z","dependencies_parsed_at":"2024-05-09T14:46:21.787Z","dependency_job_id":"79848011-7121-4952-bced-eccc2b6a3cc5","html_url":"https://github.com/8thgencore/mailfort","commit_stats":null,"previous_names":["8thgencore/mailfort"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/8thgencore/mailfort","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8thgencore%2Fmailfort","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8thgencore%2Fmailfort/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8thgencore%2Fmailfort/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8thgencore%2Fmailfort/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/8thgencore","download_url":"https://codeload.github.com/8thgencore/mailfort/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8thgencore%2Fmailfort/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28331353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["golang","grpc","mail","rest-api"],"created_at":"2026-01-12T01:56:27.942Z","updated_at":"2026-01-12T01:56:29.681Z","avatar_url":"https://github.com/8thgencore.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MailFort\nMailFort is an email service project that allows you to send confirmation emails and password reset emails. It provides flexibility in configuration and supports both gRPC and REST API for interaction.\n\n## Getting Started\nTo run the MailFort service, follow these steps:\n\n1. **Fill out the configuration file:** Create a configuration file (e.g., `local.yaml`) and provide the necessary configurations for the MailFort service. You can find an example configuration file in the `config` directory.\n\n2. **Export the configuration path:** Set the environment variable `CONFIG_PATH` to point to your configuration file.\n```bash\nexport CONFIG_PATH=./config/local.yaml\n```\n\n3. **Add credential for mail client:** Create file `.env` and write parameters.\n\n4. **Run in development mode:** Start the MailFort service in development mode using the task command:\n```bash\ntask dev\n```\n\n## Interaction\nMailFort supports interaction through both gRPC and REST API.\n\n### gRPC Interaction\nTo interact with MailFort using gRPC, you can use the generated gRPC client. Below is an example in Go:\n\n```go\n// Example gRPC client\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"time\"\n\n\t\"google.golang.org/grpc\"\n\tpb \"path/to/mailfort/pb\" // Import your generated gRPC package\n\n\t\"github.com/8thgencore/mailfort/internal/config\"\n)\n\nfunc main() {\n\t// Create a gRPC connection to MailFort service\n\tconn, err := grpc.Dial(\"localhost:44044\", grpc.WithInsecure())\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to connect: %v\", err)\n\t}\n\tdefer conn.Close()\n\n\t// Create a MailFort client\n\tclient := pb.NewMailFortClient(conn)\n\n\t// Example: Send Confirmation Email\n\tconfirmationReq := \u0026pb.ConfirmationRequest{\n\t\tEmail: \"user@example.com\",\n\t\tCode:  \"123456\",\n\t}\n\n\t_, err = client.SendConfirmationEmail(context.Background(), confirmationReq)\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to send confirmation email: %v\", err)\n\t}\n\n\t// Example: Send Password Reset Email\n\tresetReq := \u0026pb.ResetPasswordRequest{\n\t\tEmail: \"user@example.com\",\n\t\tCode:  \"654321\",\n\t}\n\n\t_, err = client.SendPasswordResetEmail(context.Background(), resetReq)\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed to send password reset email: %v\", err)\n\t}\n}\n```\n\n### REST API Interaction\nMailFort also provides a RESTful API for interaction. Below are examples using `curl`:\n\n#### Send Confirmation Email:\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"email\":\"user@example.com\",\"code\":\"123456\"}' http://localhost:8080/api/send-confirmation-email\n```\n#### Send Password Reset Email:\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"email\":\"user@example.com\",\"code\":\"654321\"}' http://localhost:8080/api/send-password-reset-email\n```\n\nMake sure to replace the example email addresses and codes with your actual data.\n\nFeel free to adapt the examples based on your programming language and preferred HTTP client library for REST API interaction.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8thgencore%2Fmailfort","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F8thgencore%2Fmailfort","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8thgencore%2Fmailfort/lists"}