{"id":1412,"date":"2012-10-19T22:35:03","date_gmt":"2012-10-20T05:35:03","guid":{"rendered":"http:\/\/xiehang.com\/blog\/?p=1412"},"modified":"2012-10-19T22:35:03","modified_gmt":"2012-10-20T05:35:03","slug":"oh-ya","status":"publish","type":"post","link":"https:\/\/xiehang.com\/blog\/2012\/10\/19\/oh-ya\/","title":{"rendered":"Oh ya"},"content":{"rendered":"

I setup a mail server and an IM server, again … just for whatever reason. It’s fun though.<\/p>\n

I’m still with openldap, postfix, mysql, ejabberd, but use dovecot replaces courier for imap, amavisd integrated with spamassassin and clamav to replace previous spamassassin-only system, and roundcube replaces squirrelmail. Things are more or less easier to setup.<\/p>\n

There are two things left, one is that need to direct spams to spam folder, this was done by maildrop but since I’m away from courier, procmail may be a more reasonable choice but still need to evaluate. The other thing is that I want to send all incoming and outgoing mails to some other gmail accounts so that I can keep a copy of everything, but I haven’t decided what’s the better approach for this. Also, if it is possible to get XMPP messages backup somewhere, that will be great.<\/p>\n

I was thinking of building up a search feature for this mail system, I haven’t got exact design done yet, but some features are in my mind: close to realtime (tens of seconds latency), attachment friendly (dig into attachments to find context), and scriptable, i.e. core engine can be (or have to be) C\/C++, but lots of external stuffs should be able to be done in PHP\/Perl, etc.<\/p>\n

Let’s see.<\/p>\n","protected":false},"excerpt":{"rendered":"

I setup a mail server and an IM server, again … just for whatever reason. It’s fun though. I’m still with openldap, postfix, mysql, ejabberd, but use dovecot replaces courier for imap, amavisd integrated with spamassassin and clamav to replace previous spamassassin-only system, and roundcube replaces squirrelmail. Things are more or less easier to setup. […]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[117,30,343],"_links":{"self":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/1412"}],"collection":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/comments?post=1412"}],"version-history":[{"count":2,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/1412\/revisions"}],"predecessor-version":[{"id":1414,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/posts\/1412\/revisions\/1414"}],"wp:attachment":[{"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/media?parent=1412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/categories?post=1412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xiehang.com\/blog\/wp-json\/wp\/v2\/tags?post=1412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}