Snapping in Blender

Hello guys! I would like to know how to snap one mesh on another (see the image below) while it has a different angle? In Maya there is a tool called Snap Together Tool that allows you to snap one object to another and it also changes automatically the rotation of the snapped object without intersecting other mesh. So my question is: Is it possible to do something similar in blender?