GUI приложение должно посылать мейл с прикреплённым файлом, но у меня выходит ошибка

import os 
import smtplib  
import tkinter as tk 
from tkinter import *    
from tkinter.filedialog import askopenfilename 
from tkinter import filedialog 
os.path.commonpath

windows = tk.Tk() 
windows.title("Automatic Send E-mail with pdf file") # program title 
windows.geometry('500x400') # size of program    
windows.sourceFile = ''
lbl = Label(windows, text="Enter Your E-Mail address : ")      
lbl.grid(column=0, row=1)  

def enter_login(): #Enter login by mail here    
    l = password.get() #get login from entry    
    print(l)
    
mail_login = StringVar() #Login variable 
loginEntry = Entry(windows, textvariable=mail_login) 
loginEntry.grid(column=0, row=2)
lbl = Label(windows, text="Enter Your password : ")      
lbl.grid(column=0, row=3)  

def enter_password(): #Enter password by mail here    
    p = password.get() #get password from entry    
    print(p)

mail_password = StringVar() #Password variable 
passEntry =  Entry(windows, textvariable=mail_password, show='*')      
passEntry.grid(column=0, row=4)
lbl = Label(windows, text="Enter Recipient E-Mail : ")   
lbl.grid(column=0, row=7)  

def enter_recipient_login(): #Enter login by mail here    
    r_l = password.get() #get login from entry    
    print(r_l)

recipient_login = StringVar() #Login variable 
loginEntry = Entry(windows, textvariable=recipient_login)    
loginEntry.grid(column=0, row=8)
lbl = Label(windows, text="Subject : ")   
lbl.grid(column=0, row=9)  

def enter_subject(): #Enter Subject of mail    
    subject = password.get() #get subject from entry    
    print(subject)

subject_theme = StringVar() #Login variable 
loginEntry = Entry(windows, textvariable=subject_theme) 
loginEntry.grid(column=0, row=10)
lbl = Label(windows, text="Body of mail : ")   
lbl.grid(column=0, row=11)  

def enter_body(): #Enter Subject of mail    
    body = password.get() #get subject from entry    
    print(body)

body_text = StringVar() #Login variable 
loginEntry = Entry(windows, textvariable=body_text) 
loginEntry.grid(column=0, row=12)

def chooseFile():    
    windows.sourceFile = filedialog.askopenfilename(parent=windows, initialdir= "/", title='Please select a file')

b_chooseFile = tk.Button(windows, text = "Choose File", width = 20, height = 3, command = chooseFile) 
b_chooseFile.place(x = 80,y = 120)    
# b_chooseFile.grid(padx=170, pady=170) 
b_chooseFile.grid(column=0, row=15)   
pathfile = print(windows.sourceFile)

def send_attachment(pathfile):    
    filename = ''    
    attachment = open(pathfile)    
    p = MIMEBase('application', 'octet-stream')    
    p.set_payload((attachment).read())    
    encoders.encode_base64(p)    
    p.add_header('Content-Disposition', "attachment; filename= %s" % filename)    
    msg.attach(p)

b_sendattachment = Button(windows, text="Send attachment", width = 20, height = 3, command = send_attachment) 
b_sendattachment.place(x = 100,y = 115)    
# b_sendattachement.grid(padx=100, pady=100) 
b_sendattachment.grid(column=0, row=18)
windows.mainloop()  
send_attachment(pathfile)
# windows.columnconfigure(0, weight=1) # Центрирует поля ввода    
# windows.rowconfigure(0, weight=1) # Центрирует поля ввода
# Добавляем необходимые подклассы - MIME-типы 
from email.mime.multipart import MIMEMultipart      # Многокомпонентный    объект 
from email.mime.base import MIMEBase                              
from email.mime.text import MIMEText                # Текст/HTML 
from email.mime.image import MIMEImage              # Изображения 
from email import encoders
addr_from = mail_login          # Destination  
addr_to = recipient_login       # Recipient 
password = mail_password        # Пароль
msg = MIMEMultipart()           # Создаем сообщение 
msg['From'] = addr_from         # Адресат 
msg['To']   = addr_to           # Получатель 
msg['Subject'] = subject_theme  # Тема сообщения

body = body_text                                    # Добавляем в сообщение текст    
msg.attach(MIMEText(body, 'plain'))              
server = smtplib.SMTP_SSL('smtp.yandex.ru', 465)    # Создаем объект SMTP    
#server.starttls()                                  # Начинаем шифрованный обмен по TLS 
server.login(addr_from, password)                   # Получаем доступ 
server.send_message(msg)                            # Отправляем сообщение server.quit()          
windows.mainloop()

Выдаёт ошибку когда нажимаю на "Send attachment"

"TypeError: send_attachment() missing 1 required positional argument: 'pathfile'"

Далее выходит вторая ошибка -

 "File "D:\My_Files\Python_Projects\autosend_mail\send1.py", line 96, in <module>
    send_attachment(pathfile)
  File "D:\My_Files\Python_Projects\autosend_mail\send1.py", line 82, in send_attachment
    attachment = open(pathfile)
TypeError: expected str, bytes or os.PathLike object, not NoneType".

Ответы (0 шт):