aboutsummaryrefslogtreecommitdiff
path: root/mail/sendmail
diff options
context:
space:
mode:
authorDirk Meyer <dinoex@FreeBSD.org>2004-04-11 06:23:18 +0000
committerDirk Meyer <dinoex@FreeBSD.org>2004-04-11 06:23:18 +0000
commit5b6b83339db4b5b851ea421439491196e91b42af (patch)
tree3a0c1292376ac4ad62b9dcbca7d41038d5505755 /mail/sendmail
parent40fbadaa37ec8312e3306c259a0bac34d9fead11 (diff)
downloadports-5b6b83339db4b5b851ea421439491196e91b42af.tar.gz
ports-5b6b83339db4b5b851ea421439491196e91b42af.zip
Notes
Diffstat (limited to 'mail/sendmail')
-rw-r--r--mail/sendmail/Makefile27
-rw-r--r--mail/sendmail/files/CYRUS_LOOKUP80
-rw-r--r--mail/sendmail/files/cyruslookup.patch119
3 files changed, 222 insertions, 4 deletions
diff --git a/mail/sendmail/Makefile b/mail/sendmail/Makefile
index 4c16b9ae8557..561986a8a854 100644
--- a/mail/sendmail/Makefile
+++ b/mail/sendmail/Makefile
@@ -50,15 +50,17 @@ PKGMESSAGE= ${WRKSRC}/pkg-message
# SENDMAIL_WITH_SASL2=yes
# SENDMAIL_WITH_LDAP=yes
# SENDMAIL_WITH_SOCKETMAP=yes
+# SENDMAIL_WITH_CYRUSLOOKUP=yes
# SENDMAIL_WITH_PICKY_HELO_CHECK=yes
# SENDMAIL_WITH_CONNECTION_RATE=yes
-.if defined(SENDMAIL_WITH_SMTPS)
-.if !defined(SENDMAIL_WITH_TLS) && !defined(WITH_TLS)
+.if defined(SENDMAIL_WITH_SMTPS) && !defined(SENDMAIL_WITH_TLS) && !defined(WITH_TLS)
SENDMAIL_WITH_TLS=yes
-pre-configure:
- @${ECHO_CMD} "DEPENDENCY NOTE: SENDMAIL_WITH_TLS will be enabled to support SENDMAIL_WITH_SMTPS"
+AUTO_ENABLED_TLS=yes
.endif
+.if defined(SENDMAIL_WITH_CYRUSLOOKUP) && !defined(SENDMAIL_WITH_SOCKETMAP)
+SENDMAIL_WITH_SOCKETMAP=yes
+AUTO_ENABLED_SOCKETMAP=yes
.endif
.if defined(SENDMAIL_WITH_LDAP)
@@ -106,6 +108,9 @@ CONFLICTS+= sendmail*+sasl2*-8.*
.if defined(SENDMAIL_WITH_SOCKETMAP)
EXTRA_PATCHES+= ${FILESDIR}/socketmap.patch
.endif
+.if defined(SENDMAIL_WITH_CYRUSLOOKUP)
+EXTRA_PATCHES+= ${FILESDIR}/cyruslookup.patch
+.endif
.if defined(SENDMAIL_WITH_TLS) || defined(WITH_TLS)
TLS_SUFFIX?= +tls
CONFLICTS+= sendmail+sasl-8.* \
@@ -160,6 +165,14 @@ post-extract:
-e "s=%%PORTSDIR%%=${PORTSDIR}=g" \
${PKGDIR}/pkg-message > ${WRKSRC}/pkg-message
+pre-configure:
+.if defined(AUTO_ENABLED_TLS)
+ @${ECHO_CMD} "DEPENDENCY NOTE: SENDMAIL_WITH_TLS will be enabled to support SENDMAIL_WITH_SMTPS"
+.endif
+.if defined(AUTO_ENABLED_SOCKETMAP)
+ @${ECHO_CMD} "DEPENDENCY NOTE: SENDMAIL_WITH_SOCKETMAP will be enabled to support SENDMAIL_WITH_CYRUSLOOKUP"
+.endif
+
do-configure:
@${MV} ${WRKSRC}/devtools/OS/FreeBSD ${WRKSRC}/devtools/OS/FreeBSD.sed
${SED} -e "s;\`-pthread\';\`${PTHREAD_LIBS}\';" \
@@ -222,6 +235,9 @@ pre-install:
.if defined(SENDMAIL_WITH_CONNECTION_RATE)
@${ECHO_CMD} "share/doc/sendmail/CONNECTION_RATE_CONTROL" >>${PLIST}
.endif
+.if defined(SENDMAIL_WITH_CYRUSLOOKUP)
+ @${ECHO_CMD} "share/doc/sendmail/CYRUS_LOOKUP" >>${PLIST}
+.endif
@${ECHO_CMD} "@dirrm %%DOCSDIR%%" >>${PLIST}
.endif
@@ -281,6 +297,9 @@ post-install:
${INSTALL_DATA} ${FILESDIR}/CONNECTION_RATE_CONTROL \
${DOCSDIR}/CONNECTION_RATE_CONTROL
.endif
+.if defined(SENDMAIL_WITH_CYRUSLOOKUP)
+ ${INSTALL_DATA} ${FILESDIR}/CYRUS_LOOKUP ${DOCSDIR}/CYRUS_LOOKUP
+.endif
.endif
.if exists(${DESTDIR}/etc/mail/mailer.conf)
@${CAT} ${PKGMESSAGE}
diff --git a/mail/sendmail/files/CYRUS_LOOKUP b/mail/sendmail/files/CYRUS_LOOKUP
new file mode 100644
index 000000000000..a1a685bf97a3
--- /dev/null
+++ b/mail/sendmail/files/CYRUS_LOOKUP
@@ -0,0 +1,80 @@
+
+ CYRUS MAILBOX LOOKUP FOR SENDMAIL
+ ---------------------------------
+
+You have enabled modifications for sendmail for looking up
+whether a cyrus (2.2.3+) mailbox exists and is under quota
+before accepting any mail to be relayed to cyrus.
+
+They are based on the idea and work by
+
+Andrzej Filip
+
+published at
+
+http://anfi.homeunix.net/sendmail/rtcyrus2.html.
+
+Please, use this url to learn all configuration details
+(although a quick recipe is provided below) and may be to give
+credits to the author.
+
+******************************************************************
+
+HOW TO :
+---------
+
+0. Build the `mail/sendmail' sendmail port with
+ SENDMAIL_WITH_SOCKETMAP=yes SENDMAIL_WITH_CYRUSLOOKUP=yes
+ This is what you've just obviously done, unless you are just browsing the
+ ports tree. To stick with these settings, you can place something like
+ the following in your `/etc/make.conf'.
+
+PORTSDIR?= /usr/ports
+.if ${.CURDIR} == ${PORTSDIR}/mail/sendmail
+SENDMAIL_WITH_CYRUSLOOKUP= yes
+SENDMAIL_WITH_SOCKETMAP= yes
+# possibly other sendmail knobs here too.
+.endif
+
+ You should have also installed and configured Cyrus IMAP server,
+ version 2.2.3 or higher. Not the worst idea is to utilize the
+ `mail/cyrus-imapd22' port.
+
+1. Insert the following lines to the SERVICES sections of `cyrus.conf'.
+ By default, the port installs it to `/usr/local/etc'.
+
+ # Sendmail socket map smmapd(8)
+ smmap cmd="smmapd" listen="/var/imap/socket/smmapd" prefork=0
+
+ A SIGHUP would make the Cyrus master(8) process catch this change
+ on-the-fly. Please, also note, that if sendmail and cyrus run on
+ separate machines, you will obviously need to modify this line
+ and a couple of others.
+
+2. As per the `install-configure' from Cyrus IMAP server's documentation,
+ in the simplest case, you add:
+
+ define(`confLOCAL_MAILER', `cyrusv2')dnl
+ MAILER(`cyrusv2')dnl
+
+ to your sendmail's .mc file to make local delivery to Cyrus mailboxes.
+ Per the instructions, provided by Andrzej Filip (see the above URL),
+ these lines should become:
+
+ define(`LOCAL_RELAY',`mrs_cyrus_user:stripdom')dnl
+ FEATURE(`mrs')dnl
+ FEATURE(`mrs_cyrus')dnl
+ MODIFY_MAILER_FLAGS(`CYRUSV2',`-A5')dnl
+ MAILER(`cyrusv2')dnl
+
+ for sendmail to start rejecting local addresses for nonexisting and
+ full mailboxes. Rebuild your sendmail.cf, restart sendmail, and enjoy!
+
+ If your configuration is more complicated than the above two lines,
+ read Andrzej's article. It contains more examples.
+
+******************************************************************
+
+2004, April 8th
+Michael O. Boev,
+mike@tric.ru.
diff --git a/mail/sendmail/files/cyruslookup.patch b/mail/sendmail/files/cyruslookup.patch
new file mode 100644
index 000000000000..bb1fa6f03f01
--- /dev/null
+++ b/mail/sendmail/files/cyruslookup.patch
@@ -0,0 +1,119 @@
+*** cf/m4/proto.m4 2004/03/09 15:49:38 1.1
+--- cf/m4/proto.m4 2004/03/10 20:29:48
+***************
+*** 1299,1304 ****
+--- 1299,1307 ----
+ R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2
+ R< error : $+ > $* $#error $: $1
+ R< local : $* > $* $>CanonLocal < $1 > $2
++ ifdef(`_MRS_RELAY_',`dnl
++ R< $={MRS} : $* > $* $@ $> $1 < $2 > $3
++ dnl')
+ dnl it is $~[ instead of $- to avoid matches on IPv6 addresses
+ R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
+ R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
+--- /dev/null Wed Apr 7 20:03:20 2004
++++ cf/feature/mrs.m4 Tue Mar 23 14:00:30 2004
+@@ -0,0 +1,25 @@
++divert(-1)
++dnl
++dnl Updates: http://anfi.webhop.net/sendmail/mrs.html
++dnl
++dnl By using this file, you agree to the terms and conditions set
++dnl forth in the LICENSE file which can be found at the top level of
++dnl the sendmail distribution (sendmail-8.12).
++dnl
++dnl Contributed by Andrzej Filip
++dnl
++dnl THE FEATURE REQUIRES PATCHING cf/m4/proto.m4
++dnl SEE THE LINK AFTER "Updates:"
++dnl
++dnl $Log: mrs.m4,v $
++dnl Revision 8.3 2004/03/18 21:39:22 anfi
++dnl Changed comments prefixes to dnl to avoid m4 expansions
++dnl
++dnl Revision 8.2 2004/03/15 09:14:28 anfi
++dnl Added "Updates:" web link.
++dnl
++divert(0)
++VERSIONID(`$Id: mrs.m4,v 8.3 2004/03/18 21:39:22 anfi Exp $')
++divert(-1)
++
++define(`_MRS_RELAY_', `')
+--- /dev/null Thu Apr 8 15:55:21 2004
++++ cf/feature/mrs_cyrus.m4 Thu Apr 1 21:37:05 2004
+@@ -0,0 +1,74 @@
++divert(-1)
++dnl
++dnl Updates: http://anfi.webhop.net/sendmail/rtcyrus2.html
++dnl
++dnl By using this file, you agree to the terms and conditions set
++dnl forth in the LICENSE file which can be found at the top level of
++dnl the sendmail distribution (sendmail-8.12).
++dnl
++dnl Contributed by Andrzej Filip
++dnl
++dnl $Log: mrs_cyrus.m4,v $
++dnl Revision 8.7 2004/04/01 14:29:50 anfi
++dnl Added "stripdom" handling in mrs_cyrus_user.
++dnl Fully defined error mailer details.
++dnl
++dnl Revision 8.6 2004/03/18 23:17:57 anfi
++dnl Fundamental rewrite.
++dnl
++ifdef(`_MRS_RELAY_',`',
++ `errprint(`*** ERROR: FEATURE(mrs_cyrus) requires FEATURE(mrs)
++')')
++ifdef(`_MRS_CYRUS_',
++ `errprint(`*** ERROR: There can be only one FEATURE(mrs_cyrus*)
++')')
++define(`_MRS_CYRUS_',`')
++
++divert(0)
++VERSIONID(`$Id: mrs_cyrus.m4,v 8.7 2004/04/01 14:29:50 anfi Exp $')
++divert(-1)
++define(`CYRUS_SMMAPD_SOCKET',
++ ifelse(len(X`'_ARG_), `1', `/var/imap/socket/smmapd', _ARG_))
++define(`CYRUS_SMMAPD_SOCKET_TYPE',
++ ifelse(len(X`'_ARG2_), `1', `local', _ARG2_))
++LOCAL_CONFIG
++# Add 3 mrs_cyrus rule sets to list of valid mrs rule sets
++C{MRS}mrs_cyrus_user mrs_cyrus_mailertable mrs_cyrus_stickyhub
++# map for checking cyrus imap mailbox existence
++Kcyrus socket -a<OK> -T<TMPF> CYRUS_SMMAPD_SOCKET_TYPE:CYRUS_SMMAPD_SOCKET
++
++LOCAL_RULESETS
++######################################################################
++### feature mrs_cyrus rulesets to be used by feature mrs
++######################################################################
++
++Smrs_cyrus_user
++R<$*> $+ <@$+.> $: <$1> $2 <@ $3 >
++R<$*> $+ <@$*> $: <$1> $2 <@$3> $| $(cyrus $2 $: $)
++R<$*> $+ <@$*> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
++R<$*> $+ <@$*> $| $* <OK> $# cyrusv2 $@ dummy $: $4
++R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3>
++R<stripdom> $+ <@stripdom> $@ $1
++R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3
++R< $+ > $* $>MailerToTriple < $1 > $2
++R< > $* $# error $@ 5.1.1 $: "550 User unknown"
++
++Smrs_cyrus_mailertable
++R<$*> $+ <@$+.> $: <$1> $2 <@ $3 >
++R<$*> $+ <@$+> $: <$1> $2 <@$3> $| $(cyrus $2@$3 $: $)
++R<$*> $+ <@$+> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
++R<$*> $+ <@$+> $| $* <OK> $# cyrusv2d $@ dummy $: $2 <@$3>
++R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3>
++R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3
++R< $+ > $* $>MailerToTriple < $1 > $2
++R< > $* $# error $@ 5.1.1 $: "550 User unknown"
++
++Smrs_cyrus_stickyhub
++R<dummy> $+ <@$+.> $: <dummy> $1 <@ $2 >
++R<dummy> $* <@dummy> $@ $1
++R<dummy> $+ <@$={VirtCyrus}> $: <dummy> $1 <@$2> $| $(cyrus $1@$2 $: $)
++R<dummy> $+ <@$={VirtCyrus}> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
++R<dummy> $+ <@$={VirtCyrus}> $| $* <OK> $# cyrusv2d $@ dummy $: $1 <@$2>
++R<dummy> $+ <@$={VirtCyrus}> $| $* $# error $@ 5.1.1 $: "550 User unknown"
++R<dummy> $=L <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: @$1
++R<dummy> $* <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: $1