代码之家  ›  专栏  ›  技术社区  ›  cyka

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

  •  1
  • cyka  · 技术社区  · 4 年前

    我想做一个程序来生成outlook电子邮件 特金特

    我想要的是:

    • 当我选择: 悲伤 生成 “我很难过”
    • 快乐 +点击 生成

    问题:

    • 当您运行程序并选择 悲伤 快乐 + 它工作得很好,但当你再次尝试同样的事情时,它会给你一个机会 : Tkinter回调异常 回溯(最近一次呼叫):
    
        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()
    
    

    如果可能的话,我更喜欢编辑我的代码,而不是做同样事情的不同代码。

    When I click generate for the first time

    当我关闭outlook页面并点击Generate获取新邮件时

    When I close the outlook page and hit Generate for a new message

    2 回复  |  直到 4 年前
        1
  •  1
  •   tamahom    4 年前

    试试这个:

    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()
    
        2
  •  1
  •   Daniel Butler    4 年前

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