[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7685":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":35,"discoverSource":36},7685,"mailcatcher","sj26\u002Fmailcatcher","sj26","Catches mail and serves it through a dream.","http:\u002F\u002Fmailcatcher.me",null,"Ruby",6760,603,74,28,0,2,7,39.34,"MIT License",false,"main",[24,25,26,27,28,29,30,31],"development","devtools","mail","rails","ruby","rubygems","server","smtp","2026-06-12 02:01:43","# MailCatcher\n\nCatches mail and serves it through a dream.\n\nMailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface. Run mailcatcher, set your favourite app to deliver to smtp:\u002F\u002F127.0.0.1:1025 instead of your default SMTP server, then check out http:\u002F\u002F127.0.0.1:1080 to see the mail that's arrived so far.\n\n![MailCatcher screenshot](https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F14028\u002F14093249\u002F4100f904-f598-11e5-936b-e6a396f18e39.png)\n\n## Features\n\n* Catches all mail and stores it for display.\n* Shows HTML, Plain Text and Source version of messages, as applicable.\n* Rewrites HTML enabling display of embedded, inline images\u002Fetc and opens links in a new window.\n* Lists attachments and allows separate downloading of parts.\n* Download original email to view in your native mail client(s).\n* Command line options to override the default SMTP\u002FHTTP IP and port settings.\n* Mail appears instantly if your browser supports [WebSockets][websockets], otherwise updates every thirty seconds.\n* Runs as a daemon in the background, optionally in foreground.\n* Sendmail-analogue command, `catchmail`, makes using mailcatcher from PHP a lot easier.\n* Keyboard navigation between messages\n\n## How\n\n1. `gem install mailcatcher`\n2. `mailcatcher`\n3. Go to http:\u002F\u002F127.0.0.1:1080\u002F\n4. Send mail through smtp:\u002F\u002F127.0.0.1:1025\n\n### Command Line Options\n\nUse `mailcatcher --help` to see the command line options.\n\n```\nUsage: mailcatcher [options]\n\nMailCatcher v0.8.0\n\n        --ip IP                      Set the ip address of both servers\n        --smtp-ip IP                 Set the ip address of the smtp server\n        --smtp-port PORT             Set the port of the smtp server\n        --http-ip IP                 Set the ip address of the http server\n        --http-port PORT             Set the port address of the http server\n        --messages-limit COUNT       Only keep up to COUNT most recent messages\n        --http-path PATH             Add a prefix to all HTTP paths\n        --no-quit                    Don't allow quitting the process\n    -f, --foreground                 Run in the foreground\n    -b, --browse                     Open web browser\n    -v, --verbose                    Be more verbose\n    -h, --help                       Display this help information\n        --version                    Display the current version\n```\n\n### Upgrading\n\nUpgrading works the same as installation:\n\n```\ngem install mailcatcher\n```\n\n### Ruby\n\nIf you have trouble with the setup commands, make sure you have [Ruby installed](https:\u002F\u002Fwww.ruby-lang.org\u002Fen\u002Fdocumentation\u002Finstallation\u002F):\n\n```\nruby -v\ngem environment\n```\n\nYou might need to install build tools for some of the gem dependencies. On Debian or Ubuntu, `apt install build-essential`. On macOS, `xcode-select --install`.\n\nIf you encounter issues installing [thin](https:\u002F\u002Frubygems.org\u002Fgems\u002Fthin), try:\n\n```\ngem install thin -v 1.5.1 -- --with-cflags=\"-Wno-error=implicit-function-declaration\"\n```\n\n### Bundler\n\nPlease don't put mailcatcher into your Gemfile. It will conflict with your application's gems at some point.\n\nInstead, pop a note in your README stating you use mailcatcher, and to run `gem install mailcatcher` then `mailcatcher` to get started.\n\n### RVM\n\nUnder RVM your mailcatcher command may only be available under the ruby you install mailcatcher into. To prevent this, and to prevent gem conflicts, install mailcatcher into a dedicated gemset with a wrapper script:\n\n    rvm default@mailcatcher --create do gem install mailcatcher\n    ln -s \"$(rvm default@mailcatcher do rvm wrapper show mailcatcher)\" \"$rvm_bin_path\u002F\"\n\n### Rails\n\nTo set up your rails app, I recommend adding this to your `environments\u002Fdevelopment.rb`:\n\n    config.action_mailer.delivery_method = :smtp\n    config.action_mailer.smtp_settings = { :address => '127.0.0.1', :port => 1025 }\n    config.action_mailer.raise_delivery_errors = false\n\n### PHP\n\nFor projects using PHP, or PHP frameworks and application platforms like Drupal, you can set [PHP's mail configuration](https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fmail.configuration.php) in your [php.ini](https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fconfiguration.file.php) to send via MailCatcher with:\n\n    sendmail_path = \u002Fusr\u002Fbin\u002Fenv catchmail -f some@from.address\n\nYou can do this in your [Apache configuration](https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fconfiguration.changes.php) like so:\n\n    php_admin_value sendmail_path \"\u002Fusr\u002Fbin\u002Fenv catchmail -f some@from.address\"\n\nIf you've installed via RVM this probably won't work unless you've manually added your RVM bin paths to your system environment's PATH. In that case, run `which catchmail` and put that path into the `sendmail_path` directive above instead of `\u002Fusr\u002Fbin\u002Fenv catchmail`.\n\nIf starting `mailcatcher` on alternative SMTP IP and\u002For port with parameters like `--smtp-ip 192.168.0.1 --smtp-port 10025`, add the same parameters to your `catchmail` command:\n\n    sendmail_path = \u002Fusr\u002Fbin\u002Fenv catchmail --smtp-ip 192.160.0.1 --smtp-port 10025 -f some@from.address\n\n### Django\n\nFor use in Django, add the following configuration to your projects' settings.py\n\n```python\nif DEBUG:\n    EMAIL_HOST = '127.0.0.1'\n    EMAIL_HOST_USER = ''\n    EMAIL_HOST_PASSWORD = ''\n    EMAIL_PORT = 1025\n    EMAIL_USE_TLS = False\n```\n\n### Docker\n\nThere is a Docker image available [on Docker Hub](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fsj26\u002Fmailcatcher):\n\n```\n$ docker run -p 1080 -p 1025 sj26\u002Fmailcatcher\nUnable to find image 'sj26\u002Fmailcatcher:latest' locally\nlatest: Pulling from sj26\u002Fmailcatcher\n8c6d1654570f: Already exists\nf5649d186f41: Already exists\nb850834ea1df: Already exists\nd6ac1a07fd46: Pull complete\nb609298bc3c9: Pull complete\nab05825ece51: Pull complete\nDigest: sha256:b17c45de08a0a82b012d90d4bd048620952c475f5655c61eef373318de6c0855\nStatus: Downloaded newer image for sj26\u002Fmailcatcher:latest\nStarting MailCatcher v0.9.0\n==> smtp:\u002F\u002F0.0.0.0:1025\n==> http:\u002F\u002F0.0.0.0:1080\n```\n\nHow those ports appear and can be accessed may vary based on your Docker configuration. For example, your may need to use `http:\u002F\u002F127.0.0.1:1080` etc instead of the listed address. But MailCatcher will run and listen to those ports on all IPs it can from within the Docker container.\n\n### API\n\nA fairly RESTful URL schema means you can download a list of messages in JSON from `\u002Fmessages`, each message's metadata with `\u002Fmessages\u002F:id.json`, and then the pertinent parts with `\u002Fmessages\u002F:id.html` and `\u002Fmessages\u002F:id.plain` for the default HTML and plain text version, `\u002Fmessages\u002F:id\u002Fparts\u002F:cid` for individual attachments by CID, or the whole message with `\u002Fmessages\u002F:id.source`.\n\n## Caveats\n\n* Mail processing is fairly basic but easily modified. If something doesn't work for you, fork and fix it or [file an issue][mailcatcher-issues] and let me know. Include the whole message you're having problems with.\n* Encodings are difficult. MailCatcher does not completely support utf-8 straight over the wire, you must use a mail library which encodes things properly based on SMTP server capabilities.\n\n## Thanks\n\nMailCatcher is just a mishmash of other people's hard work. Thank you so much to the people who have built the wonderful guts on which this project relies.\n\n## Donations\n\nI work on MailCatcher mostly in my own spare time. If you've found Mailcatcher useful and would like to help feed me and fund continued development and new features, please [donate via PayPal][donate]. If you'd like a specific feature added to MailCatcher and are willing to pay for it, please [email me](mailto:sj26@sj26.com).\n\n## License\n\nCopyright © 2010-2019 Samuel Cochran (sj26@sj26.com). Released under the MIT License, see [LICENSE][license] for details.\n\n  [donate]: https:\u002F\u002Fwww.paypal.com\u002Fcgi-bin\u002Fwebscr?cmd=_s-xclick&hosted_button_id=522WUPLRWUSKE\n  [license]: https:\u002F\u002Fgithub.com\u002Fsj26\u002Fmailcatcher\u002Fblob\u002Fmaster\u002FLICENSE\n  [mailcatcher-github]: https:\u002F\u002Fgithub.com\u002Fsj26\u002Fmailcatcher\n  [mailcatcher-issues]: https:\u002F\u002Fgithub.com\u002Fsj26\u002Fmailcatcher\u002Fissues\n  [websockets]: https:\u002F\u002Ftools.ietf.org\u002Fhtml\u002Frfc6455\n","MailCatcher 是一个用于拦截和展示邮件的简单SMTP服务器。它能够捕获所有发送到其上的邮件，并通过Web界面进行展示，支持查看邮件的HTML、纯文本及原始源代码版本，同时提供附件下载功能。此外，该工具还具备即时显示新邮件（如果浏览器支持WebSockets）、命令行配置选项以及键盘导航等特性。基于Ruby开发的MailCatcher特别适合开发者在本地或测试环境中调试应用的邮件发送功能时使用。","2026-06-11 03:13:46","top_language"]