Я хочу автоматизировать некоторые задачи по отправке электронной почты от имени другого.У меня возникают трудности при обходе обмена с его учетными данными с локальной машины.Это скрипт, который у меня есть:
import os
import sys
# Recipient mail - 1 mail
param_in= sys.argv[1]
file_in = sys.argv[2]
fixed_param = param_in.split()
fixed_file_in = file_in.split()
def send_mail(send_from: str, subject: str, text: str, send_to: list, send_cc: list, send_bcc: list, files= None, report="yes"):
# Reporting Funcs
def mail_report_beg():
print("Sender: " + str(send_from))
print("Recipients: " + str(send_to))
print("Cc Recipients: " + str(send_cc))
print("Bcc Recipients: " + str(send_bcc))
print("Attached files: " + str(files))
print("Sending....")
def mail_report_end():
print("Mail sent succesfully")
# Required libraries / modules
try:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.base import MIMEBase
from email import encoders
from os.path import basename
except:
return ("Failed to load necessary modules", 1)
# Deprecated calls
#from email.MIMEBase import MIMEBase
#from email.MIMEMultipart import MIMEMultipart
if report=="yes":
mail_report_beg()
# Fall back to default address if no send_to is empty
send_to= default_address if not send_to else send_to
# Instantiate new MIMEMultipart object
msg = MIMEMultipart()
# Assign Basic Parameters
msg['From'] = send_from
msg['To'] = ', '.join(send_to)
msg['Subject'] = subject
msg['Cc'] = ', '.join(send_cc)
msg['Bcc'] = ', '.join(send_bcc)
# Assign Body
msg.attach(MIMEText(text))
# Iterate over files and attach
for f in files or []:
with open(f, "rb") as fil:
ext = f.split('.')[-1:]
attachedfile = MIMEApplication(fil.read(), _subtype = ext)
attachedfile.add_header(
'content-disposition', 'attachment', filename=basename(f) )
msg.attach(attachedfile)
# Send Email
# Server connection info
smtp = smtplib.SMTP(host, port)
#smtp = smtplib.SMTP(host="xxxxxxx", port= 587)
smtp.starttls()
smtp.login(username,password)
smtp.sendmail(send_from, send_to, msg.as_string())
smtp.close()
if report=="yes":
mail_report_end()
host="host@host.host"
port= 587
username = 'user'
password = 'pass'
default_address = 'defaddress@def.def'
subject_in = 'subjin '
msg2 = """
xxxxxxx
"""
send_mail(
send_from= default_address,
subject=subject_in,
text=msg2,
send_to= fixed_param,
send_cc= ['xxxxx.com.gr', 'xxxx.com.gr'] ,
send_bcc= ['xxxx.com.gr'] ,
files= fixed_file_in
)
Я хотел бы иметь возможность отправлять учетные данные другого пользователя, предпочтительно с моего локального компьютера.Может ли это быть каким-то образом автоматизировано с помощью run as?И если да, то какие настройки нужно будет включить?Есть ли библиотека Python, которая может обеспечить ту же функцию?
Заранее спасибо.