I would like to install a local SMTP Server so that i can create a virtual domain and then create email address for that domain.
I would like to create SMTP details so that i can check the emails using thunderbird.
Also i must be able to send bulk mails to this server via C# code. This should not use the existing mail servers on the internet.
Suggest the good alternative
Sending the emails can be done in the way you describe. Just install an SMTP server, make sure you get all the details correct (hostname, portnumber, etc) and use that to send the emails.
Getting replies from people involves more work. You need a domainname for that, that is registered in a public DNS. On that domainname you need to set the correct MX record, which is a hostname or IP that points to your mail server. The mail server should be able to receive mail from the outside (the internet). In that mail server you probably need to configure the domain you are receiving for and the account you would like people to reply to.
BUT an SMTP server is different from a mail server. An SMTP Server is just for sending, but you need more than that when you also want to receive mail.