Hi Eric, I don't think that's quite what I'm looking for - unless I have to run two servers - as I still need to enable remote access for delivery of incoming messages.
However, your comment got me looking in the smtpserver.conf instead of the mailetcontainer.conf file, and I think, if I can create a custom handler and insert it into the SMTP server handler chain, I can get access to the SMTPSession in the check() method of the handler, from which I can then use SMTPSession#getRemoteIPAddress in conjunction with the Mail object to achieve what I need to. I think... Martin On 31 March 2013 11:15, Eric Charles <[email protected]> wrote: > Hi, > > Did you look at authorizedAddresses [1] in smtpserver-template.xml ? > It allows to configure the smptserver to accept only some originating > addresses. Does it completely map your requirements (it sounds like, but > not sure from your mail). > > Thx, Eric > > > [1] > <!-- Uncomment this if you want to authorize specific > addresses/networks. > If you use SMTP AUTH, addresses that match those specified > here will > be permitted to relay without SMTP AUTH. If you do not use > SMTP > AUTH, and you specify addreses here, then only addresses > that match > those specified will be permitted to relay. > > Addresses may be specified as a an IP address or domain > name, with an > optional netmask, e.g., > > 127.*, 127.0.0.0/8, 127.0.0.0/255.0.0.0, and localhost/8 > are all the same > > See also the RemoteAddrNotInNetwork matcher in the > transport processor. > You would generally use one OR the other approach. > --> > <authorizedAddresses>127.0.0.**0/8 <http://127.0.0.0/8> > </authorizedAddresses> > > > > > > On 29/03/2013 12:31, Martin Hewitt wrote: > >> Hi all, >> >> I'm building a system that uses the James SMTP server to send and receive >> messages. I intercept these messages with a custom mailet and feed them >> into my system. However, when it comes to sending mail through the SMTP >> server, there's a bit of difference. >> >> My users have an email address, which is configured in a database, I have >> a >> custom UserRepository that handles the verification of addresses. However, >> because users never login to James/IMAP directly, there's no real concept >> of a "password". This means I can't use conventional authentication, but I >> can't close off port 25, because I won't get incoming mail, but, >> obviously, >> I don't want to have an open SMTP relay running. >> >> What I'm looking to do is configure my mailets such that, if a message is >> destined for remote delivery (i.e. is an outgoing message) that the SMTP >> server only allows such a delivery if the request originated from the same >> machine that the SMTP server is running on. >> >> I'm not sure how (or, even, if) I can get this information from the >> Mailet/Matcher API - I think I'm more in Matcher territory than Mailet >> territory - but the Matcher still only has access to the Mail object, and >> I >> think I'm probably a bit lower-level than that. >> >> Can/should I run two SMTP instances, one for incoming and one for >> outgoing? >> Can they have different Mailet chains? >> >> Not sure how best to achieve this! >> >> Martin >> >> > ------------------------------**------------------------------**--------- > To unsubscribe, e-mail: > server-user-unsubscribe@james.**apache.org<[email protected]> > For additional commands, e-mail: > [email protected].**org<[email protected]> > >
