环境
python3.8.3
代码
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import tkinter as tk
from tkinter import *
import tkinter.messagebox
import smtplib
import poplib
from email.mime.text import MIMEText
from email.header import Header
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr
#使用腾讯QQ邮箱发送邮件
def send_email_by_qq():
def send_email():
message = MIMEText(entry_message_context.get(), 'plain', 'utf-8')
message["From"] = Header(entry_sender_email_address.get())
message["To"] = Header(entry_receiver_email.get())
message["Subject"] = Header(entry_message_subject.get(), 'utf-8')
email_client = smtplib.SMTP_SSL(smtp_server_host, smtp_server_port)
try:
# 验证邮箱及密码是否正确
email_client.login(entry_sender_email_address.get(), entry_sender_email_password.get())
tk.messagebox.showinfo('恭喜','发送成功,请查收')
except:
tk.messagebox.showerror('错误','账户OR密码错误')
else:
email_client.sendmail(entry_sender_email_address.get(), entry_receiver_email.get(), message.as_string())
finally:
email_client.close()
global qq_send_window
qq_send_window = tk.Tk()
qq_send_window.title('使用QQ邮箱发送邮件')
qq_send_window.geometry('500x350')
#获取邮件信息
tk.Label(qq_send_window, text='发件人邮箱:', font=('微软雅黑', 14)).place(x=50, y=10)
tk.Label(qq_send_window, text='授权密码:', font=('微软雅黑', 14)).place(x=50, y=40)
tk.Label(qq_send_window, text='收件人邮箱:', font=('微软雅黑', 14)).place(x=50, y=70)
tk.Label(qq_send_window, text='服务器:smtp.qq.com', font=('微软雅黑', 14)).place(x=50, y=100)
tk.Label(qq_send_window, text='服务器端口:465', font=('微软雅黑', 14)).place(x=50, y=130)
tk.Label(qq_send_window, text='邮件主题:', font=('微软雅黑', 14)).place(x=50, y=160)
tk.Label(qq_send_window, text='邮件内容:', font=('微软雅黑', 14)).place(x=50, y=190)
#使用QQ邮箱时
global smtp_server_host
smtp_server_host = "smtp.qq.com"
global smtp_server_port
smtp_server_port = 465
# 获取发件人邮箱
global sender_email_address
global entry_sender_email_address
sender_email_address = tk.StringVar()
entry_sender_email_address = tk.Entry(qq_send_window, textvariable=sender_email_address, font=('微软雅黑', 14))
entry_sender_email_address.place(x=175, y=10)
# 获取授权密码
global sender_email_password
global entry_sender_email_password
sender_email_password = tk.StringVar()
entry_sender_email_password = tk.Entry(qq_send_window, textvariable=sender_email_password, font=('微软雅黑', 14))
entry_sender_email_password.place(x=175, y=40)
# 获取收件人邮箱
global receiver_email
global entry_receiver_email
receiver_email = tk.StringVar()
entry_receiver_email = tk.Entry(qq_send_window, textvariable=receiver_email, font=('微软雅黑', 14))
entry_receiver_email.place(x=175, y=70)
# 获取邮件主题
global message_subject
global entry_message_subject
message_subject = tk.StringVar()
entry_message_subject = tk.Entry(qq_send_window, textvariable=message_subject, font=('微软雅黑', 14))
entry_message_subject.place(x=175, y=160)
# 获取邮件内容
global message_context
global entry_message_context
message_context = tk.StringVar()
entry_message_context = tk.Entry(qq_send_window, textvariable=message_context, font=('微软雅黑', 14))
entry_message_context.place(x=175, y=190)
#设置发送按钮
send_button = tk.Button