使用python进行邮件发送
import argparse
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os
import sys
def send_email(sender_email, sender_password, recipient_email, subject, body, attachment_path=None):
try:
msg = MIMEMultipart()
msg["From"] = sender_email
msg["To"] = recipient_email
msg["Subject"] = subject
msg.attach(MIMEText(body, "plain"))
if attachment_path:
with open(attachment_path, "rb") as f:
attach = MIMEApplication(f.read(), _subtype="octet-stream")
attach.add_header("Content-Disposition", "attachment", filename=os.path.basename(attachment_path))
msg.attach(attach)
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
server.login(sender_email, sender_password)
server.sendmail(sender_email, recipient_email, msg.as_string())
server.quit()
print("Email sent successfully!")
return 1
except Exception as e:
print(f"Error: {e}")
return 0
def main():
parser = argparse.ArgumentParser(description="Send an email using QQ Mail.")
parser.add_argument("-u", "--recipient", required=True, help="Recipient email address")
parser.add_argument("-i", "--sender", required=True, help="Sender email address")
parser.add_argument("-p", "--password", required=True, help="Sender email password")
parser.add_argument("-s", "--subject", required=True, help="Email subject")
parser.add_argument("-b", "--body", required=True, help="Email body")
parser.add_argument("-f", "--attachment", help="Attachment file path")
args = parser.parse_args()
exit_code = send_email(args.sender, args.password, args.recipient, args.subject, args.body, args.attachment)
sys.exit(exit_code)
if __name__ == "__main__":
main()