All Projects → smtpd → Qpsmtpd

smtpd / Qpsmtpd

Licence: mit
qpsmtpd is a flexible smtpd daemon written in Perl

Programming Languages

perl
6916 projects

Labels

Projects that are alternatives of or similar to Qpsmtpd

Jcabi Email
Object-Oriented Email Sending Java SDK
Stars: ✭ 51 (-58.87%)
Mutual labels:  smtp
Opaquemail
.NET email library and proxy supporting IMAP, POP3, and SMTP with S/MIME and PGP.
Stars: ✭ 91 (-26.61%)
Mutual labels:  smtp
Bamboo smtp
An SMTP adapter for Bamboo.
Stars: ✭ 111 (-10.48%)
Mutual labels:  smtp
Hedwig
Send email to any SMTP server like a boss, in Swift and cross-platform
Stars: ✭ 1,096 (+783.87%)
Mutual labels:  smtp
Tcpbin
Very crude and poorly written HTTP(s) and SMTP bin
Stars: ✭ 85 (-31.45%)
Mutual labels:  smtp
Mailmergelib
MailMergeLib is a mail message client library which provides comfortable mail merge capabilities for text, inline images and attachments, as well as good throughput and fault tolerance for sending mail messages.
Stars: ✭ 97 (-21.77%)
Mutual labels:  smtp
Wp Phpmailer
Provides a clean and simple way to configure the WordPress-bundled PHPMailer library, allowing you to quickly get started sending mail through a local or cloud based service of your choice
Stars: ✭ 46 (-62.9%)
Mutual labels:  smtp
Vs Deploy
Visual Studio Code extension that provides commands to deploy files of a workspace to a destination.
Stars: ✭ 123 (-0.81%)
Mutual labels:  smtp
Netdumbster
netDumbster is a .Net Fake SMTP Server clone of the popular Dumbster
Stars: ✭ 88 (-29.03%)
Mutual labels:  smtp
Cli
Get a programmable email address. Automate what happens when you receive emails. It's like Zapier for devs who hate emails.
Stars: ✭ 105 (-15.32%)
Mutual labels:  smtp
Mailcore
Emailing wrapper for Vapor 3 apps
Stars: ✭ 77 (-37.9%)
Mutual labels:  smtp
Gopherus
This tool generates gopher link for exploiting SSRF and gaining RCE in various servers
Stars: ✭ 1,258 (+914.52%)
Mutual labels:  smtp
Fastsitephp
🌟 FastSitePHP 🌟 A Modern Open Source Framework for building High Performance Websites and API’s with PHP
Stars: ✭ 102 (-17.74%)
Mutual labels:  smtp
Mailer
A lightweight PHP SMTP mail sender
Stars: ✭ 53 (-57.26%)
Mutual labels:  smtp
Mailinabox
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.
Stars: ✭ 10,649 (+8487.9%)
Mutual labels:  smtp
Post Smtp
Next generation SMTP mailer plugin for WordPress. Trusted by over 100,000 sites.
Stars: ✭ 47 (-62.1%)
Mutual labels:  smtp
Mailway
Mailway installer, host your own Mailway instance
Stars: ✭ 94 (-24.19%)
Mutual labels:  smtp
Nb2mail
Send a notebook as an email
Stars: ✭ 124 (+0%)
Mutual labels:  smtp
Eventum
Eventum Issue Tracking System
Stars: ✭ 120 (-3.23%)
Mutual labels:  smtp
Smtptester
small python3 tool to check common vulnerabilities in SMTP servers
Stars: ✭ 102 (-17.74%)
Mutual labels:  smtp

Build Status Coverage Status

Qpsmtpd - qmail perl simple mail transfer protocol daemon

Web site, FAQ, Email List

Qpsmtpd is an extensible SMTP engine written in Perl. See plugins/quit_fortune for a cute example.

License

Qpsmtpd is licensed under the MIT License; see the LICENSE file for more information.

What's new?

See the Changes file! :-)

Installation

Required Perl Modules

* Net::DNS
* MIME::Base64
* Mail::Header (part of the MailTools distribution)

If your Perl is older than 5.8.0, you will also need

* Data::Dumper
* File::Temp
* Time::HiRes

The easiest way to install modules from CPAN is with the CPAN shell. Run it with

perl -MCPAN -e shell

qpsmtpd installation

Make a new user and a directory where you'll install qpsmtpd. I usually use "smtpd" for the user and /home/smtpd/qpsmtpd/ for the directory.

Put the files there. If you install from git you can just do run the following command in the /home/smtpd/ directory.

git clone git://github.com/smtpd/qpsmtpd.git

Beware that the master branch might be unstable and unsuitable for anything but development, so you might want to get a specific release, for example (after running git clone):

git checkout -b local_branch v0.93

chmod o+t ~smtpd/qpsmtpd/ (or whatever directory you installed qpsmtpd in) to make supervise start the log process.

Edit the file config/IP and put the ip address you want to use for qpsmtpd on the first line (or use 0 to bind to all interfaces).

If you use the supervise tools, then you are practically done! Just symlink /home/smtpd/qpsmtpd into your /services (or /var/services or /var/svscan or whatever) directory. Remember to shutdown qmail-smtpd if you are replacing it with qpsmtpd.

If you don't use supervise, then you need to run the ./run script in some other way.

The smtpd user needs write access to ~smtpd/qpsmtpd/tmp/ but should not need to write anywhere else. This directory can be configured with the spool_dir configuration and permissions can be set with spool_perms.

As of version 0.25 the distributed ./run script runs tcpserver with the -R flag to disable identd lookups. Remove the -R flag if that's not what you want.

Configuration

Configuration files can go into either /var/qmail/control or into the config subdirectory of the qpsmtpd installation. Configuration should be compatible with qmail-smtpd making qpsmtpd a drop-in replacement.

If qmail is installed in a nonstandard location you should set the $QMAIL environment variable to that location in your "./run" file.

If there is anything missing, then please send a patch (or just information about what's missing) to the mailinglist or a PR to github.

Better Performance

For better performance we recommend using "qpsmtpd-forkserver" or running qpsmtpd under Apache 2.x. If you need extremely high concurrency use Haraka.

Plugins

The qpsmtpd core only implements the SMTP protocol. No useful function can be done by qpsmtpd without loading plugins.

Plugins are loaded on startup where each of them register their interest in various "hooks" provided by the qpsmtpd core engine.

At least one plugin MUST allow or deny the RCPT command to enable receiving mail. The rcpt_ok is one basic plugin that does this. Other plugins provide extra functionality related to this; for example the resolvable_fromhost plugin described above.

Configuration files

All the files used by qmail-smtpd should be supported; so see the man page for qmail-smtpd. Extra files used by qpsmtpd include:

plugins

List of plugins, one per line, to be loaded in the order they appear in the file. Plugins are in the plugins directory (or in a subdirectory of there).

rhsbl_zones

Right hand side blocking lists, one per line. For example:

dsn.rfc-ignorant.org does not accept bounces - http://www.rfc-ignorant.org/

See http://www.rfc-ignorant.org/ for more examples.

dnsbl_zones

Normal ip based DNS blocking lists ("RBLs"). For example:

relays.ordb.org spamsources.fabel.dk

spool_dir

If this file contains a directory, it will be the spool directory smtpd uses during the data transactions. If this file doesn't exist, it will default to use $ENV{HOME}/tmp/. This directory should be set with a mode of 700 and owned by the smtpd user.

spool_perms

The default spool permissions are 0700. If you need some other value, chmod the directory and set it's octal value in config/spool_perms.

tls_before_auth

If this file contains anything except a 0 on the first noncomment line, then AUTH will not be offered unless TLS/SSL are in place, either with STARTTLS, or SMTP-SSL on port 465.

everything (?) that qmail-smtpd supports.

In my test qpsmtpd installation I have a "config/me" file containing the hostname I use for testing qpsmtpd (so it doesn't introduce itself with the normal name of the server).

Problems

In case of problems, always check the logfile first.

By default, qpsmtpd logs to log/main/current. Qpsmtpd can log a lot of debug information. You can get more or less by adjusting the number in config/loglevel. Between 1 and 3 should give you a little. Setting it to 10 or higher will get lots of information in the logs.

If the logfile doesn't give away the problem, then post to the mailinglist (subscription instructions above). If possible, put the logfile on a webserver and include a reference to it in the mail.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].