Does metamask is necessary for communicating with DApps in ethereum network? if no then what is the another way to interact with the Smart Contract ?
It is not required but a very handful to start working with Ethereum network and smart contracts using MetaMask.If you want to start working with Ethereum directly you can use web3.js project.