This commit is contained in:
2024-07-19 11:03:17 +08:00
parent 38ade33f70
commit 033842fe68
3 changed files with 207 additions and 5 deletions
+75
View File
@@ -0,0 +1,75 @@
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def send_batch_email(receiver_email_list, subject, content, file_path=None):
"""
Send Email to the receiver list. Can attach files if needed.
:param receiver_email_list:
:param subject: Title
:param content: Word Content
:param file_path: file list
:return:
"""
# sender config
sender_email = "ArmorServer@outlook.com"
password = "ServerOnly2024!"
# mail content
message = MIMEMultipart()
message["Subject"] = subject
message["From"] = sender_email
# main body
part1 = MIMEText(content, "plain")
message.attach(part1)
if file_path and isinstance(file_path, list):
for filename in file_path:
# 指定附件的路径和文件名
attachment = open(filename, 'rb')
# 创建MIMEBase实例
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
# 添加邮件头
part.add_header(
'Content-Disposition',
f'attachment; filename= {filename}',
)
message.attach(part)
attachment.close()
# 登录SMTP服务器并发送邮件
# 使用Hotmail的SMTP服务器
server = smtplib.SMTP('smtp.office365.com', 587)
try:
server.starttls() # 启用安全传输模式
server.login(sender_email, password)
for receiver_email in receiver_email_list:
message["To"] = receiver_email
server.sendmail(sender_email, receiver_email, message.as_string())
print(f"Email to {receiver_email} sent successfully!")
except Exception as e:
print(f"Error: {e}")
finally:
server.quit()
if __name__ == '__main__':
target_email_list = ['2654988228@qq.com']
email_subject = 'Test Message'
email_body = """
This is a test email
"""
email_file_list = []
send_batch_email(target_email_list, email_subject, email_body, email_file_list)