python: wxpython 4.2 开发一个邮件客户端,能编写邮件,发送邮件及附件

以下是一个使用 wxPython 4.2 开发的简单邮件客户端程序,支持编写邮件、添加附件和发送邮件功能:
编写 eMailClient_wx.py 如下

import os
import wx
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

class EmailClient(wx.Frame):
    def __init__(self):
        super().__init__(None, title="邮件客户端", size=(1000, 600))
        
        # 初始化附件列表
        self.attachments = []
        
        # 创建主面板
        panel = wx.Panel(self)
        vbox = wx.BoxSizer(wx.VERTICAL)
        
        # 服务器设置
        server_box = wx.StaticBox(panel, label="SMTP服务器设置")
        server_sizer = wx.StaticBoxSizer(server_box, wx.VERTICAL)
        
        server_grid = wx.FlexGridSizer(cols=2, vgap=10, hgap=10)
        
        server_grid.Add(wx.StaticText(panel, label="SMTP服务器:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.smtp_server = wx.TextCtrl(panel, value="smtp.qq.com")
        server_grid.Add(self.smtp_server, 1, wx.EXPAND)
        
        server_grid.Add(wx.StaticText(panel, label="端口:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.port = wx.TextCtrl(panel, value="465")
        server_grid.Add(self.port, 1, wx.EXPAND)
        
        server_grid.Add(wx.StaticText(panel, label="邮箱账号:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.email = wx.TextCtrl(panel)
        server_grid.Add(self.email, 1, wx.EXPAND)
        
        server_grid.Add(wx.StaticText(panel, label="密码:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.password = wx.TextCtrl(panel, style=wx.TE_PASSWORD)
        server_grid.Add(self.password, 1, wx.EXPAND)
        
        server_sizer.Add(server_grid, 1, wx.EXPAND|wx.ALL, 10)
        
        # 邮件内容
        mail_box = wx.StaticBox(panel, label="邮件内容")
        mail_sizer = wx.StaticBoxSizer(mail_box, wx.VERTICAL)
        
        mail_grid = wx.FlexGridSizer(cols=2, vgap=10, hgap=10)
        mail_grid.AddGrowableCol(1, 1)
        
        mail_grid.Add(wx.StaticText(panel, label="收件人:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.to_email = wx.TextCtrl(panel)
        mail_grid.Add(self.to_email, 1, wx.EXPAND)
        
        mail_grid.Add(wx.StaticText(panel, label="主题:"), 0, wx.ALIGN_CENTER_VERTICAL)
        self.subject = wx.TextCtrl(panel)
        mail_grid.Add(self.subject, 1, wx.EXPAND)
        
        mail_grid.Add(wx.StaticText(panel, label="附件:"), 0, wx.ALIGN_CENTER_VERTICAL)
        attachment_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.attachment_list = wx.ListBox(panel, size=(-1, 60))
        attachment_sizer.Add(self.attachment_list, 1, wx.EXPAND)
        
        btn_add = wx.Button(panel, label="添加附件")
        btn_add.Bind(wx.EVT_BUTTON, self.on_add_attachment)
        attachment_sizer.Add(btn_add, 0, wx.LEFT, 5)
        
        btn_remove = wx.Button(panel, label="移除")
        btn_remove.Bind(wx.EVT_BUTTON
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值