Smoke Testing:It is done to make sure if the build we got is testable or not, i.e to check for the testability of the build also called as "day 0"check. Done at the 'build level',
Sanity Testing:It is done during the release phase to check for the main functionalities without going deeper. Sometimes also called as subset of regression testing. When no rigorous regression testing is done to the build, sanity does that part by checking major functionalities. Done at the 'release level'.