qq邮件发送

使用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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值