These problems almost always occur with forums. Given my experience running a board, I would strongly encourage not allowing anyone to post who you have not manually vetted. Otherwise, the forums will be swamped with spam.
It sounds like you have found a good compromise, Rezwan, in allowing new accounts to read but not post. That way you don’t lose any real readers, but don’t encourage spammers. I would be very much against requiring any personally identifying information for registration, as the issue of spamming goes both ways, and you don’t want to be collecting unnecessary info that could be used nefariously if your database is compromised. You really are only trying to confirm the legitimacy of the membership request, and those details don’t really do that, unless you are going to manually check every phone number and address you collect. Spammers work on volume, and requiring a direct request for posting privileges takes too much time and effort for almost all spamming operations.