import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from datetime import datetime, timedelta import pytz # For timezone handling """ TODO add """ def send_email(interviewee_email="darkicewolf50@gmail.com", interviewee_name="brock", date="2024-1-10", start_time="10:00:00", location ="ENC25"): """ Sends an email notification to the interviewee and to the uofcbaja account ``REQUIRES``: ``str`` interviewee_email, ``str`` interviewee_name, ``str`` date, ``str`` start_time ``PROMISES``: ``EMAIL`` Sends an email to interviewee and static email on successful appointment booking. ``Developed by``: Ahmad ``Contact``: ahmad.ahmad1@ucalgary.ca """ # Define static email for notifications and Gmail credentials static_email = "uofcbaja@gmail.com" gmail_user = "uofcbaja.noreply@gmail.com" gmail_apppassword = "pver lpnt upjd zvld" # Define Mountain Standard Time mst = pytz.timezone("America/Edmonton") # MST with Daylight Savings considered # Parse the input date and time, localize to MST start_datetime = mst.localize(datetime.strptime(f"{date} {start_time}", "%Y-%m-%d %H:%M:%S")) end_datetime = start_datetime + timedelta(minutes=30) # Format date and time for the calendar URLs start_time_google = start_datetime.strftime("%Y%m%dT%H%M%S") # Google Calendar (Local time without Z) end_time_google = end_datetime.strftime("%Y%m%dT%H%M%S") # Google Calendar (Local time without Z) outlook_start = start_datetime.isoformat() # Outlook Calendar (ISO local time) outlook_end = end_datetime.isoformat() # Outlook Calendar (ISO local time) # Create message object msg = MIMEMultipart() msg['From'] = gmail_user msg['To'] = f"{interviewee_email}, {static_email}" msg['Subject'] = "Interview Appointment Confirmation" # Message body body = f''' Interview Invitation

Dear {interviewee_name},

Your interview has been scheduled on {date} at {start_time}

Please ensure to be available at the designated time.

Google Calendar Add to Google Calendar Outlook Logo Add to Outlook Calendar

Best regards,

UCalgary Baja Interview Team

UCalgary Baja Logo

If you need to change the date or cancel please email uofcbaja@gmail.com or reply all to this email

''' msg.attach(MIMEText(body, 'html')) try: # Setup the server and send the email server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(gmail_user, gmail_apppassword) server.sendmail(gmail_user, [interviewee_email, static_email], msg.as_string()) server.quit() # print(f"Email sent successfully to {interviewee_email} and {static_email}.") except Exception as e: print(f"Failed to send email: {e}") if __name__ == "__main__": send_email()