exchangelib实现带附件邮件发送


from exchangelib import Credentials,Account,DELEGATE,Message,FileAttachment
from exchangelib.protocol import BaseProtocol,NoVerifyHTTPAdapter
import requests
import pandas as pd
from openpyxl.writer.excel import save_workbook,save_virtual_workbook
from requests.packages.urllib3.exceptions import InsecureRequestWarning

def log_exchange():

    BaseProtocol.HTTP_ADAPTER_CLS = NoVerifyHTTPAdapter
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    credentials = Credentials('用户名','密码')
    account = Account(primary_smtp_address='163服务器地址@163.com.cn',
                      autodiscover=True,
                      credentials=credentials,
                      access_type=DELEGATE
                      )
    print("连接成功",account)
    return account

def send_email():
    result = [{"a":1,"b":2},{"a":2,"b":3}]
    df = pd.DataFrame(result)
    writer = pd.ExcelWriter('psudo.xlsx', engine='openpuxl')
    df.to_excel(writer,sheet_name="测试",index=False)
    receiver = ["zhangsan@lu.com"]
    cc_ = ["lisi@lu.com"]
    account = log_exchange()
    content = save_virtual_workbook(writer.book)
    subject = "测试邮件"
    file_name = "测试.xlsx"
    attachment_list = [{
        "content":content,
        "file_name":file_name
    }]
    message = Message(
        account=account,
        subject=subject,
        body="",
        to_recipients=receiver,
        cc_recipients=cc_
    )
    myfile1 = FileAttachment(name=attachment_list[0]["file_name"],content=attachment_list[0]["content"])
    message.attach(myfile1)
    message.send_and_save()

if __name__ == '__main__':
    send_email()


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小金子的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值