You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
55 lines
2.0 KiB
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,helen.barbour@interphone.com.au,suzie.mcgregor@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 <accounts@interphone.com.au>"
|
|
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
|
|
|