Social Engineering Attacks becomes a real threat especially with the emerging of the Online Social Networks (OSN) which provides the attacker with personal information about the victim that facilitates the attack. It becomes more common threat against enterprises and SMBs (Small and Medium Business) like threaten its financial and trust work. The E-mails and OSNs such as Twitter and Facebook are the most common environments used in this kind of attacks.  In this paper, we have reviewed the existing techniques for detecting the Social Engineering Attacks mainly on e-mails and OSNs. Mostly focus on the Natural Language Processing (NLP) and machine learning techniques.  A comparative study and evaluation of these approaches is presented. This provides an understanding of the problem, its current solution alternatives, and the anticipated future research directions