import smtplib, ssl from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart port = 587 # For starttls smtp_server = "smtp.fibrenet.net.au" sender_email = "alan.woodman@interphone.com.au" receiver_email = "alan.woodman@interphone.com.au" #password = input("Type your password and press enter:") class SendEmail(): def __init__(self) -> None: self.smtp_server = "smtp.fibrenet.net.au" self.smtp_port = 587 self.sender = "Accounts " self.receiver = None self.message_type = "html" self.subject = None self.message_body_html = None self.message_body_plain = None def send(self): message = MIMEMultipart("alternative") message["Subject"] = self.subject message["From"] = self.sender message["To"] = self.receiver # Turn these into plain/html MIMEText objects if self.message_type == "plain": part1 = MIMEText(self.message_body_plain, "plain") message.attach(part1) elif self.message_type == "html": part2 = MIMEText(self.message_body_html, "html") message.attach(part2) elif self.message_type == "both": part1 = MIMEText(self.message_body_plain, "plain") message.attach(part1) part2 = MIMEText(self.message_body_html, "html") message.attach(part2) # Create secure connection with server and send email context = ssl.create_default_context() try: with smtplib.SMTP(smtp_server, port) as server: #server.login(sender_email, password) server.ehlo() server.starttls(context=context) server.ehlo() # Can be omitted server.sendmail( self.sender, self.receiver, message.as_string() ) return True except: return False