Anyone familiar with iconv errors during install? I got the following error log when trying my first Haraka install: http://pastebin.com/GhMGaeWW
ultimatt joined the channel
dopesong joined the channel
ultimatt has quit
darkpixel has quit
darkpixel joined the channel
DoubleMalt joined the channel
bmonty joined the channel
bmonty joined the channel
EyePulp joined the channel
baudehlo
Squeebee: do you have libiconv-dev installed? (I'm not sure if you need that, but maybe)
DoubleMalt joined the channel
DoubleMalt has quit
EyePulp joined the channel
Squeebee
Does Haraka need Node 6? I may have more luck with the older release.
EyePulp
Squeebee: It doesn't require v6 to my knowledge. I think it works with some pretty old releases.
Squeebee
Ok thanks!
EyePulp
Squeebee: though if you can use 6.x, life is better under es6 (not for haraka necessarily, but for any new code you need to write =)
Squeebee
Good to know, thanks EyePulp!
baudehlo
Yeah we support v0.10 - v6
Squeebee
Ok, while I play with this, how would I set everything to route to a specific host/port? I'd like to start by sending everything to smtp-sink so it doesn't go anywhere.
baudehlo
use smtp_forward.
Squeebee
Thank you.
baudehlo
It's in the default config/plugins. Configuration docs are on the web site.
Squeebee
Found it, thanks.
And one more to get me started. Does Haraka support multiple outbound IPs, and if so how do I assign a message to its appropriate IP?
baudehlo
Yes, you have to write a custom plugin though, hooking the get_mx hook.
Basically you have to write some javascript for this. There's no default support for it.
Squeebee
Got it, this gives me enough context to start working it out.
Although if anyone has an example of a plugin they wrote to assign IP I wouldn't complain. ;)
lnb_ joined the channel
lnb_ has quit
lnb_ joined the channel
bmonty joined the channel
Does Haraka log by default or does it require a plugin?
baudehlo
It logs to stdout by default.
(which is enough for some people)
e.g. I use runit to keep it alive, which loves logging to stdout.
Squeebee
Ok, otherwise I'm seeing log.syslog and log.elastisearch
baudehlo
and for stdout you can add timestamps if you need them.
Squeebee
Good to know, how do I add those?
baudehlo
echo 1 > config/log_timestamps
Squeebee
Thanks!
lnb_ joined the channel
bmonty has quit
Squeebee has quit
bmonty joined the channel
Squeebee joined the channel
Ok I'm wondering how much work this would be: 1) Configure named pools of IPs, each with their own EHLO. 2) Assign a message to a pool (round robin within the pool) based on finding the name of the pool in an X header.
baudehlo
Trivial.
Don't even need an X-header. just use transaction.notes which is the same as hmail.todo.notes
Squeebee
Any chance of an example of that while I dig through the manual?
Ok, so transaction notes lets me store the name of the IP pool I want, and I'd populate it by grabbing transaction.header, then remove the header?
baudehlo
You need to be clearer on what you're trying to achieve.
You want the sender to define the outbound IP?
Squeebee
Ok, let's say I want to send transactional mail and newsletters, and that for transactional I have a pool named (oddly enough) "transactional" and the newsletters are named "newsletters". In the transactional pool is 192.168.1.10 and 192.168.1.20 and they have helo of mta1.foo.com and mta2.foo.com. In the newsletter pool is 192.168.2.10 and 192.168.2.20 and they have helo of mta1.bar.com and mta2.bar.com. I want to assign injected messages to transaction
Ultimately that may scale to hundreds of IPs in tens of pools, so getting it into a conf file is desirable.
baudehlo
Right but how should Haraka know which mail is which?
By From? By connecting IP?
Squeebee
Because the individual messages have a header called X-Pool (in this example) with the name of the pool to assign to.
baudehlo
OK, so just store that in transaction.notes
then in the get_mx hook just look at hmail.todo.notes.whatever_key_you_picked
Squeebee
Aah, so there's no explicit step to pull the header, that auto-populates?
baudehlo
no, you put that in your plugin.
in hook_data_post
Squeebee
Ok. So 1) Pull header content, stick it in notes, delete header. 2) Take pool name, assign it to pool. and I assum 0) Read a config file, store array of IPs with helo?
baudehlo
yup
Squeebee
Time to learn JavaScript then. I'll give it a go.
Do any of the existing plugins have bits and pieces of this to use as examples? (Reading and storing a conf, headers to notes, IP assignment)?
baudehlo
reading config is done by just about every plugin.