• Python 调用outlook发送邮件(转 )


    单账号:

    import win32com.client as win32
    
    def send_mail():
        outlook = win32.Dispatch('Outlook.Application')
    
        mail_item = outlook.CreateItem(0) # 0: olMailItem
    
        mail_item.Recipients.Add('test@test.com')
        mail_item.Subject = 'Mail Test'
    
        mail_item.BodyFormat = 2          # 2: Html format
        mail_item.HTMLBody  = '''
            <H2>Hello, This is a test mail.</H2>
            Hello Guys. 
            '''
        mail_item.Attachments.Add('<附件文件路径>')    
        mail_item.Send()
    
    if __name__ == '__main__':
        send_mail()
    

      

    多账号:

    def send_mail():
        outlook_app = win32.Dispatch('Outlook.Application')
    
        # choose sender account
        send_account = None
        for account in outlook_app.Session.Accounts:
            if account.DisplayName == 'sender@hotmail.com':
                send_account = account
                break
    
        mail_item = outlook_app.CreateItem(0)   # 0: olMailItem
    
        # mail_item.SendUsingAccount = send_account not working
        # the following statement performs the function instead
        mail_item._oleobj_.Invoke(*(64209, 0, 8, 0, send_account))
    
        mail_item.Recipients.Add('receipient@qq.com')
        mail_item.Subject = 'Test sending using particular account'
        mail_item.BodyFormat = 2   # 2: Html format
        mail_item.HTMLBody = '''
            <H2>Hello, This is a test mail.</H2>
            Hello Guys. 
            '''
    
        mail_item.Send()
    
    
    if __name__ == '__main__':
        send_mail()  

    详细参见原文https://www.jianshu.com/p/4f0ed762f521 

    给多个地址发邮件:

    import win32com.client as win32
    import pythoncom
    
    pythoncom.CoInitialize()
    
    
    def send_mail(**kwargs):
        outlook = win32.Dispatch('Outlook.Application')
        reciList = ['user1@test.com','user2@test.com']
        for i in range(len(reciList)): 
            mail_item = outlook.CreateItem(0) # 0: olMailItem 
            mail_item.Recipients.Add(reciList[i])
            mail_item.Subject = 'Mail Test'
            mail_item.BodyFormat = 2          # 2: Html format
            mail_item.HTMLBody  = '''
                <H2>Hello, This is a test mail~~.</H2>
                Hello Guys. '''
    
            # mail_item.Attachments.Add('d:docIT Info.xlsx')    
            mail_item.Send()
    
    if __name__ == '__main__':
        send_mail()
    

      

  • 相关阅读:
    Effective C++ 学习笔记(12)
    Effective C++ 学习笔记(6)
    Effective C++ 学习笔记(13)
    Effective C++ 学习笔记(11)
    Effective C++ 学习笔记(10)
    (转)C++函数后加const的意义
    Effective C++ 学习笔记(14)
    Effective C++ 学习笔记(7)
    Effective C++ 学习笔记(9)
    Effective C++ 学习笔记(8)
  • 原文地址:https://www.cnblogs.com/luoye00/p/11319107.html
Copyright © 2020-2023  润新知