在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:flashmob/go-guerrilla开源软件地址:https://github.com/flashmob/go-guerrilla开源编程语言:Go 99.6%开源软件介绍:Latest: v1.6.1, tagged on Dec 28, 2019 (Pull requests from #129 to #203) Go-Guerrilla SMTP DaemonA lightweight SMTP server written in Go, made for receiving large volumes of mail. To be used as a package in your Go project, or as a stand-alone daemon by running the "guerrillad" binary. Supports MySQL and Redis out-of-the-box, with many other vendor provided processors, such as MailDir and even FastCGI! See below for a list of available processors. What is Go-Guerrilla?It's an SMTP server written in Go, for the purpose of receiving large volumes of email. It started as a project for GuerrillaMail.com which processes millions of emails every day, and needed a daemon with less bloat & written in a more memory-safe language that can take advantage of modern multi-core architectures. The purpose of this daemon is to grab the email, save it, and disconnect as quickly as possible, essentially performing the services of a Mail Transfer Agent (MTA) without the sending functionality. The software also includes a modular backend implementation, which can extend the email processing functionality to whatever needs you may require. We refer to these modules as "Processors". Processors can be chained via the config to perform different tasks on received email, or to validate recipients. See the list of available Processors below. For more details about the backend system, see the: Backends, configuring and extending page. LicenseThe software is using MIT License (MIT) - contributors welcome. FeaturesMain Features
Backend Features
Roadmap / Contributing & BountiesPull requests / issue reporting & discussion / code reviews always welcome. To encourage more pull requests, we are now offering bounties. Take a look at our Bounties and Roadmap page! Getting started(Assuming that you have GNU make and latest Go on your system) DependenciesGo-Guerrilla uses Dep to manage
dependencies. If you have dep installed, just run You can also run To build the binary run:
This will create a executable file named Next, copy the Next, run your server like this:
The configuration options are detailed on the configuration page. The main takeaway here is: The default configuration uses 3 processors, they are set using the Where to go next?
Use as a packageGo-Guerrilla can be imported and used as a package in your Go project. Quickstart1. Import the guerrilla packageimport (
"github.com/flashmob/go-guerrilla"
)
You should use the Otherise, 2. Start a serverThis will start a server with the default settings, listening on d := guerrilla.Daemon{}
err := d.Start()
if err == nil {
fmt.Println("Server Started!")
}
The defaults are:
Next, you may want to change the interface ( API Documentation topicsPlease continue to the API documentation for the following topics:
Use as a DaemonManual for using from the command lineOther topicsEmail Processing BackendThe main job of a Go-Guerrilla backend is to validate recipients and deliver emails. The term "delivery" is often synonymous with saving email to secondary storage. The default backend implementation manages multiple workers. These workers are composed of smaller components called "Processors" which are chained using the config to perform a series of steps. Each processor specifies a distinct feature of behaviour. For example, a processor may save the emails to a particular storage system such as MySQL, or it may add additional headers before passing the email to the next processor. To extend or add a new feature, one would write a new Processor, then add it to the config. There are a few default processors to get you started. Included Processors
Available ProcessorsThe following processors can be imported to your project, then use the Daemon.AddProcessor function to register, then add to your config.
Have a processor that you would like to share? Submit a PR to add it to the list! ReleasesCurrent release: 1.5.1 - 4th Nov 2016 Next Planned release: 2.0.0 - TBA See our change log for change and release history Using Nginx as a proxyFor such purposes as load balancing, terminating TLS early, or supporting SSL versions not supported by Go (highly not recommended if you want to use older TLS/SSL versions), it is possible to use NGINX as a proxy. CreditsProject Lead:Flashmob, GuerrillaMail.com, Contact: [email protected] Major Contributors:
Thanks to:... and anyone else who opened an issue / sent a PR / gave suggestions! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论