1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-20 04:02:27 +00:00

Qpsmtpd started as a replacement daemon for the SMTP receiver (qmail-smtpd)

from the qmail mail transport agent (MTA). qmail-smtpd has a number of
shortcomings (e.g. being unable to check the validity of a recipient mail
address) and is written in C which makes it burdensome to modify and extend.
Qpsmtpd, on the other hand, is written in pure perl and can be customized
easily. It consists of a core that implements a complete SMTP server, and a
number of plugins/modules which control the operations. Such plugins
include plugins to check the recipient and sender as well as plugins for
virus scanning, spam checking, blocking lists (dns and rhs), AUTH and TLS.
Qpsmtpd can not only be used with qmail but also with e.g. postfix and
exim. It can also write messages to a Maildir or forward it to a remote
host without buffering.

WWW: http://smtpd.develooper.com/

PR:		ports/107668
Submitted by:	Zane C. Bowers
This commit is contained in:
Martin Wilke 2007-01-09 21:09:17 +00:00
parent b6f7117b73
commit f5ec9f1ea3
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=181881
6 changed files with 264 additions and 0 deletions

View File

@ -382,6 +382,7 @@
SUBDIR += p5-URI-imaps
SUBDIR += p5-WWW-GMail
SUBDIR += p5-WWW-Hotmail
SUBDIR += p5-qpsmtpd
SUBDIR += p5-vpopmail
SUBDIR += pantomime
SUBDIR += pathalias

76
mail/p5-qpsmtpd/Makefile Normal file
View File

@ -0,0 +1,76 @@
# New ports collection makefile for: qpsmtpd
# Date created: 1 January 2007
# Whom: Zane C. Bowers
#
# $FreeBSD$
#
PORTNAME= qpsmtpd
PORTVERSION= 0.32
CATEGORIES= mail
DISTNAME= qpsmtpd-${PORTVERSION}
MAINTAINER= vvelox@vvelox.net
COMMENT= A flexible SMTP daemon written in Perl and featuring a plugin API
#none for Net::Milter yet... meaning the milter plugin does not work and thus deleted when installed
#none for Clamd yet... meaning the plugins/virus/clamd does not work and thus deleted when installed
RUN_DEPENDS= ${SITE_PERL}/${PERL_ARCH}/Net/DNS.pm:${PORTSDIR}/dns/p5-Net-DNS \
${SITE_PERL}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64 \
${SITE_PERL}/Mail/Header.pm:${PORTSDIR}/mail/p5-Mail-Tools \
${SITE_PERL}/IO/Socket/SSL.pm:${PORTSDIR}/security/p5-IO-Socket-SSL \
spamd:${PORTSDIR}/mail/p5-Mail-SpamAssassin \
${SITE_PERL}/${PERL_ARCH}/Net/DNS/Resolver.pm:${PORTSDIR}/dns/p5-Net-DNS \
${SITE_PERL}/Date/Parse.pm:${PORTSDIR}/devel/p5-TimeDate \
${SITE_PERL}/File/Temp.pm:${PORTSDIR}/devel/p5-File-Temp \
${SITE_PERL}/${PERL_ARCH}/Geo/IP.pm:${PORTSDIR}/net/p5-Geo-IP \
${SITE_PERL}/Net/LDAP.pm:${PORTSDIR}/net/p5-perl-ldap \
${SITE_PERL}/Digest/HMAC_MD5.pm:${PORTSDIR}/security/p5-Digest-HMAC
MASTER_SITES= http://smtpd.develooper.com/files/
PKGNAMEPREFIX= p5-
WRKSRC= ${WRKDIR}/${DISTNAME}
PERL_CONFIGURE= yes
MAN3= Qpsmtpd::Constants.3 \
Qpsmtpd::DSN.3 \
Qpsmtpd::Auth.3 \
Qpsmtpd::Transaction.3 \
Qpsmtpd::Address.3 \
Qpsmtpd.3 \
Qpsmtpd::Connection.3 \
Qpsmtpd::Postfix.3 \
Apache::Qpsmtpd.3
USE_RC_SUBR= qpsmtpd.sh
pre-configure:
@${RM} -v ${WRKSRC}/plugins/milter
@${RM} -v ${WRKSRC}/plugins/virus/clamdscan
post-install:
@${MKDIR} -v ${PREFIX}/share/examples/${PORTNAME}
@${CP} -v ${WRKSRC}/config.sample/* ${PREFIX}/share/examples/${PORTNAME}
@${MKDIR} -v ${PREFIX}/share/${PORTNAME}
@${MKDIR} -v ${PREFIX}/share/${PORTNAME}/plugins
@${CP} -vr ${WRKSRC}/plugins/ ${PREFIX}/share/${PORTNAME}/plugins
@${ECHO_MSG}
@${ECHO_MSG}
@${ECHO_MSG} '*****************************************************************'
@${ECHO_MSG}
@${ECHO_MSG} "Please read http://wiki.qpsmtpd.org/ for more info about"
@${ECHO_MSG} "installation."
@${ECHO_MSG}
@${ECHO_MSG} "The example config can be found in "${PREFIX}"/share/examples/"${PORTNAME}"/"
@${ECHO_MSG}
@${ECHO_MSG} "The plugins can be found in "${PREFIX}"/share/"${PORTNAME}"/plugins/"
@${ECHO_MSG}
@${ECHO_MSG} "This port does also not make any assumptions about what user you"
@${ECHO_MSG} "wish to use or install location."
@${ECHO_MSG}
@${ECHO_MSG} '*****************************************************************'
.include <bsd.port.mk>

3
mail/p5-qpsmtpd/distinfo Normal file
View File

@ -0,0 +1,3 @@
MD5 (qpsmtpd-0.32.tar.gz) = ec4622643b7fd504676dadd3b238bcf5
SHA256 (qpsmtpd-0.32.tar.gz) = 21ff3cd3a929dbcfe694fdfd6cb7f581e8e4dfcd3e56f0449c90a218200d1e0e
SIZE (qpsmtpd-0.32.tar.gz) = 108080

View File

@ -0,0 +1,78 @@
#!/bin/sh
# PROVIDE: qpsmtpd
# REQUIRE: NETWORKING SERVERS
# BEFORE: securelevel
#variables
#qpsmtpd_user = the user to run qpsmtpd-forkserver under
#qpsmtpd_group = the group the pid dir will be chowned to
#qpsmtpd_port = the port it should listen on
#qpsmtpd_max_per_ip = max connections per IP
#qpsmtpd_max_connections = maximum total connections
#qpsmtpd_listen_on = IP to listen on
. "/etc/rc.subr"
name="qpsmtpd"
rcvar=`set_rcvar`
command="%%PREFIX%%/bin/qpsmtpd-forkserver"
pidfile="/var/run/qpsmtpd/qpsmtpd.pid"
start_precmd="start_precmd"
start_cmd="start_cmd"
stop_cmd="stop_cmd"
start_precmd()
{
#exits if no user is specified
if [ -z $qpsmtpd_user ]; then
echo "qpsmtpd_user not set"
exit 1
fi
#exits if no group is specified
if [ -z $qpsmtpd_group ]; then
echo "qpsmtpd_group not set"
exit 1
fi
#sets it to the default if the port is not specified
if [ -z $qpsmtpd_port ]; then
qpsmtpd_port="2525"
fi
#set it to the default max per ip
if [ -z $qpsmtpd_max_per_ip ]; then
qpsmtpd_max_per_ip="5"
fi
#set it do the max number of connections total
if [ -z $qpsmtpd_max_connections ]; then
qpsmtpd_max_connections="15"
fi
#set the default listen on to everything
if [ -z $qpsmtpd_listen_on ]; then
qpsmtpd_listen_on="0.0.0.0"
fi
if [ ! -d /var/run/qpsmtpd/ ] ; then
mkdir /var/run/qpsmtpd
fi
chown $qpsmtpd_user:$qpsmtpd_group /var/run/qpsmtpd
}
start_cmd()
{
eval $command -p $qpsmtpd_port -c $qpsmtpd_max_connections -u $qpsmtpd_users -m $qpsmtpd_max_per_ip -l $qpsmtpd_listen_on --pid-file $pidfile
}
stop_cmd()
{
kill `cat $pidfile`
}
run_rc_command "$1"

14
mail/p5-qpsmtpd/pkg-descr Normal file
View File

@ -0,0 +1,14 @@
Qpsmtpd started as a replacement daemon for the SMTP receiver (qmail-smtpd)
from the qmail mail transport agent (MTA). qmail-smtpd has a number of
shortcomings (e.g. being unable to check the validity of a recipient mail
address) and is written in C which makes it burdensome to modify and extend.
Qpsmtpd, on the other hand, is written in pure perl and can be customized
easily. It consists of a core that implements a complete SMTP server, and a
number of plugins/modules which control the operations. Such plugins
include plugins to check the recipient and sender as well as plugins for
virus scanning, spam checking, blocking lists (dns and rhs), AUTH and TLS.
Qpsmtpd can not only be used with qmail but also with e.g. postfix and
exim. It can also write messages to a Maildir or forward it to a remote
host without buffering.
WWW: http://smtpd.develooper.com/

92
mail/p5-qpsmtpd/pkg-plist Normal file
View File

@ -0,0 +1,92 @@
bin/qpsmtpd-forkserver
bin/qpsmtpd
%%SITE_PERL%%/Qpsmtpd.pm
%%SITE_PERL%%/Qpsmtpd/SelectServer.pm
%%SITE_PERL%%/Qpsmtpd/Utils.pm
%%SITE_PERL%%/Qpsmtpd/TcpServer.pm
%%SITE_PERL%%/Qpsmtpd/Constants.pm
%%SITE_PERL%%/Qpsmtpd/Auth.pm
%%SITE_PERL%%/Qpsmtpd/DSN.pm
%%SITE_PERL%%/Qpsmtpd/Transaction.pm
%%SITE_PERL%%/Qpsmtpd/Address.pm
%%SITE_PERL%%/Qpsmtpd/Plugin.pm
%%SITE_PERL%%/Qpsmtpd/SMTP.pm
%%SITE_PERL%%/Qpsmtpd/Postfix.pm
%%SITE_PERL%%/Qpsmtpd/Connection.pm
%%SITE_PERL%%/Apache/Qpsmtpd.pm
%%SITE_PERL%%/%%PERL_ARCH%%/auto/qpsmtpd/.packlist
@dirrmtry %%SITE_PERL%%/%%PERL_ARCH%%/auto/qpsmtpd
@dirrm %%SITE_PERL%%/Qpsmtpd/
@dirrm %%SITE_PERL%%/Apache/
%%EXAMPLESDIR%%/IP
%%EXAMPLESDIR%%/badhelo
%%EXAMPLESDIR%%/badrcptto_patterns
%%EXAMPLESDIR%%/dnsbl_zones
%%EXAMPLESDIR%%/invalid_resolvable_fromhost
%%EXAMPLESDIR%%/logging
%%EXAMPLESDIR%%/loglevel
%%EXAMPLESDIR%%/plugins
%%EXAMPLESDIR%%/relayclients
%%EXAMPLESDIR%%/require_resolvable_fromhost
%%EXAMPLESDIR%%/rhsbl_zones
%%EXAMPLESDIR%%/size_threshold
@dirrm %%EXAMPLESDIR%%
%%DATADIR%%/plugins/ident/geoip
%%DATADIR%%/plugins/ident/p0f
@dirrm %%DATADIR%%/plugins/ident
%%DATADIR%%/plugins/auth/auth_cvm_unix_local
%%DATADIR%%/plugins/auth/auth_flat_file
%%DATADIR%%/plugins/auth/auth_ldap_bind
%%DATADIR%%/plugins/auth/auth_vpopmail_sql
%%DATADIR%%/plugins/auth/authdeny
%%DATADIR%%/plugins/auth/authnull
@dirrm %%DATADIR%%/plugins/auth
%%DATADIR%%/plugins/queue/exim-bsmtp
%%DATADIR%%/plugins/queue/maildir
%%DATADIR%%/plugins/queue/postfix-queue
%%DATADIR%%/plugins/queue/qmail-queue
%%DATADIR%%/plugins/queue/smtp-forward
@dirrm %%DATADIR%%/plugins/queue
%%DATADIR%%/plugins/logging/adaptive
%%DATADIR%%/plugins/logging/devnull
%%DATADIR%%/plugins/logging/file
%%DATADIR%%/plugins/logging/syslog
%%DATADIR%%/plugins/logging/warn
@dirrm %%DATADIR%%/plugins/logging
%%DATADIR%%/plugins/virus/uvscan
%%DATADIR%%/plugins/virus/bitdefender
%%DATADIR%%/plugins/virus/check_for_hi_virus
%%DATADIR%%/plugins/virus/clamav
%%DATADIR%%/plugins/virus/hbedv
%%DATADIR%%/plugins/virus/kavscanner
%%DATADIR%%/plugins/virus/klez_filter
%%DATADIR%%/plugins/virus/sophie
%%DATADIR%%/plugins/virus/aveclient
@dirrm %%DATADIR%%/plugins/virus
%%DATADIR%%/plugins/check_earlytalker
%%DATADIR%%/plugins/check_loop
%%DATADIR%%/plugins/check_norelay
%%DATADIR%%/plugins/check_relay
%%DATADIR%%/plugins/check_spamhelo
%%DATADIR%%/plugins/content_log
%%DATADIR%%/plugins/count_unrecognized_commands
%%DATADIR%%/plugins/dns_whitelist_soft
%%DATADIR%%/plugins/dnsbl
%%DATADIR%%/plugins/greylisting
%%DATADIR%%/plugins/hosts_allow
%%DATADIR%%/plugins/http_config
%%DATADIR%%/plugins/check_badrcptto_patterns
%%DATADIR%%/plugins/check_badrcptto
%%DATADIR%%/plugins/check_badmailfromto
%%DATADIR%%/plugins/quit_fortune
%%DATADIR%%/plugins/rcpt_ok
%%DATADIR%%/plugins/require_resolvable_fromhost
%%DATADIR%%/plugins/rhsbl
%%DATADIR%%/plugins/sender_permitted_from
%%DATADIR%%/plugins/spamassassin
%%DATADIR%%/plugins/tls
%%DATADIR%%/plugins/tls_cert
%%DATADIR%%/plugins/check_basicheaders
%%DATADIR%%/plugins/check_badmailfrom
@dirrm %%DATADIR%%/plugins/
@dirrm %%DATADIR%%