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'''
Dear {interviewee_name},
Your interview has been scheduled on {date} at {start_time}
Please ensure to be available at the designated time.
![]() |
![]() |
Best regards,
UCalgary Baja Interview Team
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()