Thanks for the tips.
I did install WP reCaptcha.
It seems the spam stops for couples of days, it now comes back again. And my email account got listed as blacklisted everywhere. My hosting company was able to fix that though.
However, people still leave me message which is not related to my blog and request something I don’t provide from my blog.
Any way I can ensure people read my blog at the right place with the right contents?