Hacking into James...

topic posted Thu, June 9, 2005 - 10:06 AM by  Brian
I spend about 2 or 3 hours last night hacking the James email server. Why was I doing this? Because I want to send and receive email of course. But I also want to be able to programmatically manipulate how the mail is processed - in Java. James seems to be about the only real option for this, so that is what I am using.

I have been using James for some time on my home machine to receive emails. Here is a posting on that:

sanfrancisco.tribe.net/thread...7a46f1c

Sending mail has always proven to be a bit harder for me though, unless I turn on authentication. I don't want to have to turn on authentication though, I just want to be able to send email that originates from the machine the server is running on - a feature that James should support out of the box. But alas, on the Mac it does not.

So I went into the James code to figure out why it doesn't work on a Mac, and by the end of the night it was fixed. Here is a play by play of what happened:

daflink.net/cgi-bin/trac.../JamesHacking



If you don't wanna read all that, the punchline was that this line of code doesn't work:

return org.xbill.DNS.Address.getByName(allowIPLiteral(host));


And this line does:

return java.net.InetAddress.getByName(allowIPLiteral(host));


2 hours, and one code change later, voila!
posted by:
Brian
SF Bay Area