使用 win32com + tkinter 的简单电子邮件生成器

Simple email generator with win32com + tkinter

我正在尝试制作一个程序来使用 tkinterwin32com

我想要的:

问题:


    import tkinter as tk
    import win32com.client as client
    
    root = tk.Tk()
    
    outlook = client.Dispatch('Outlook.Application')
    message = outlook.CreateItem(0)
    message.Subject= "My status"
    message.To = "test@tst.com"
    
    #When button is clicked
    def Click ():
        if(var.get()==1):
            message.Body="Thanks im HAPPY !!"
            message.Display()
            
        if(var.get()==2):
            message.Body="Pfff im sad:(("
            message.Display()
            
                       
    #RadioButtons
    var = tk.IntVar()
    
    rdb1 = tk.Radiobutton(root, text="HAPPY", variable=var, value=1)
    rdb1.pack()
    rdb2 = tk.Radiobutton(root, text="SAD", variable=var, value=2)
    rdb2.pack()
    
    #Button
    BTN=tk.Button(root, text="Generate",command=Click)
    BTN.pack()
    
    
    root.mainloop()

如果可能的话,我更喜欢对我的代码进行编辑,而不是执行相同操作的不同代码。

第一次点击生成时

当我关闭 Outlook 页面并点击生成新消息时

我认为您需要将消息的创建移动到点击功能中。这样你就不会继续与同一个 message 交互,这似乎是你的问题。


outlook = client.Dispatch('Outlook.Application')

#When button is clicked
def Click ():

    message = outlook.CreateItem(0)
    message.Subject= "My status"
    message.To = "test@tst.com"

    if(var.get()==1):
        message.Body="Thanks im HAPPY !!"
        message.Display()
            
    if(var.get()==2):
        message.Body="Pfff im sad:(("
        message.Display()

试试这个:

def Click ():
        outlook = client.Dispatch('Outlook.Application')
        message = outlook.CreateItem(0)
        message.Subject= "My status"
        message.To = "test@tst.com"
        if(var.get()==1):
            message.Body="Thanks im HAPPY !!"
            message.Display()
            
        if(var.get()==2):
            message.Body="Pfff im sad:(("
            message.Display()