Smoke and Sanity testing are basically done after the deployment. There are some similarities in both type of testing but they are differ in terms of their objective.
Smoke Testing:
As its name implies smoke testing term was basically used for new hardware or electronics items to verify that after powering it on it is not producing any smoke. From software testing stands point smoke testing generally occurs after the deployment to verify that all functionality is working normally and application is working.
Here tester is not more concern about the depth of testing, for example after deployment of application one will check all the menu, open application, close application.
As smoke testing is verifying the most common, or inherited functionality it can be automated.
Sanity Testing:
Sanity testing can be called as mini regression testing. Sanity testing is done after thorough regression testing is over, it is done to make sure that any defect fixes or changes after regression testing does not break the core functionality of the product. It is done towards the end of the product release phase.
Sanity testing is mostly related to functionality after regression, or to verify that functionality is meeting requirement or not. As it is first time testing for functionality automation of sanity testing is not possible.
If would be interested in Aware Testing Services, you can view our Testing Solutions Page.