import streamlit as st import email import email.policy # Define the phishing detection function def is_phishing(email_content): phishing_keywords = [ 'urgent', 'account verification', 'password reset', 'login required', 'confirm your identity', 'payment details', 'verify your account', 'security alert' ] msg = email.message_from_string(email_content, policy=email.policy.default) email_text = msg['subject'] + ' ' if msg.is_multipart(): for part in msg.walk(): content_type = part.get_content_type() content_disposition = str(part.get("Content-Disposition")) if content_type == "text/plain" and "attachment" not in content_disposition: email_text += part.get_payload(decode=True).decode() elif content_type == "text/html" and "attachment" not in content_disposition: email_text += part.get_payload(decode=True).decode() else: email_text += msg.get_payload(decode=True).decode() for keyword in phishing_keywords: if keyword in email_text.lower(): return True return False # Streamlit app layout st.title('Phishing Email Detector') # Text area for user input user_input = st.text_area("Paste the email content here:", height=300) if st.button('Check Email'): if is_phishing(user_input): st.error("This email might be a phishing attempt.") else: st.success("This email seems safe.")