This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
NG_2023_Video/mail.py
Heorhii Mykhailenko 749a36b445 Initial commit
2023-06-06 18:18:12 +03:00

53 lines
1.9 KiB
Python
Executable file

import configparser, email, os, smtplib, ssl
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
config = configparser.ConfigParser()
config.read('config.ini')
def send_email(destination, attachment):
subject = 'Your modified video'
body = 'You have recently used our service to modify a video. The result is attached.'
sender_email = config.get('Mail', 'Username')
receiver_email = destination
password = config.get('Mail', 'Password')
# Create a multipart message and set headers
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = subject
# Add body to email
message.attach(MIMEText(body, 'plain'))
with open(attachment, 'rb') as file:
part = MIMEBase('application', 'octet-stream')
part.set_payload(file.read())
# Encode file in ASCII characters to send by email
encoders.encode_base64(part)
# Add header as key/value pair to attachment part
part.add_header(
'Content-Disposition',
f'attachment; filename= {os.path.normpath(attachment)}',
)
# Add attachment to message and convert message to string
message.attach(part)
text = message.as_string()
# Log in to server using secure context and send email
if config.getboolean('Mail', 'SSL'):
context = ssl.create_default_context()
with smtplib.SMTP_SSL(config.get('Mail', 'Server'), config.get('Mail', 'Port'), context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, text)
else:
with smtplib.SMTP(config.get('Mail', 'Server'), config.get('Mail', 'Port')) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, text)