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()
exchangelib实现带附件邮件发送
最新推荐文章于 2022-03-04 14:01:52 发布