Data mining Group develop utils
Project description
邮件
封装简单的邮件推送功能,支持发送单个或多个收件/抄送人,支持附件上传
项目结构
- easy-email
- LISENCE.md
- README.md
- setup.py
- src
- __init__.py
- easy_email.py
- tests
- conf
- email_conf.yml
- column_config.yml
- template
- template.html
- __init__.py
- example.py
- table_example.py
- test_class.py
- conf
使用方法
配置文件模板
模板1--邮件发送
sender:
xxx@example.com
passwd:
your_passwd
receiver:
- aaa@example.com
- bbb@example.com
subject:
your_title
# Params below could be None
nickname:
your_nickname
cc:
ccc@example.com
模板2--html列表配置参数
- column_code: a
column_name: a
align: center
unit: '%'
width: 50px
- column_code: b
column_name: b
align: center
unit: ''
width: 150px
- column_code: c
column_name: c
align: center
unit: ''
width: 100px
- column_code: d
column_name: d
align: center
unit: '%'
width: 50px
示例1(body_type='plain')
from easy_email.easy_email import EasyEmail
from ruamel import yaml
import os
if __name__ == '__main__':
print(os.getcwd())
with open('conf/email.yml', 'r') as f:
content = yaml.load(f, Loader=yaml.Loader)
sender = content['sender']
receiver = content['receiver']
subject = content['subject']
nickname = content['nickname']
# file_path = 'conf/email.yml'
passwd = content['passwd']
cc = content['cc']
email = EasyEmail(
sender=sender, passwd=passwd,
subject=subject, nickname=nickname,
receiver=receiver, cc=cc
)
body = 'Hello world'
email.send(body)
示例2(body_type='html')
from easy_email.easy_email import EasyEmail
from ruamel import yaml
import pandas as pd
import string
if __name__ == '__main__':
with open('conf/email_conf.yml', 'r') as f:
content = yaml.load(f, Loader=yaml.Loader)
with open('conf/column_config.yml', 'r') as f_config:
column_config = yaml.load(f_config, Loader=yaml.Loader)
df = pd.DataFrame(
{'a': [i for i in range(10)],
'b': ['a' for _ in range(10)],
'c': ['hello' for _ in range(10)],
'd': [i for i in range(10, 20)]}
)
df.to_csv('data/data.csv', index=None)
sender = content['sender']
receiver = content['receiver']
subject = content['subject']
nickname = content['nickname']
file_path = 'data/data.csv'
passwd = content['passwd']
email = EasyEmail(
sender=sender, passwd=passwd,
subject=subject, nickname=nickname,
receiver=receiver,
file_path=file_path
)
emo = {
'col': ['a', 'd'],
'threshold': 16,
'is_upper': True
}
table_html = email.table_to_html(
df=df,
column_config=column_config,
sort={'var': ['a', 'd'], 'ascending': False},
row_limit=30,
emo=emo
)
template_html = open('template/template.html', encoding='utf8').read()
body = string.Template(template_html).safe_substitute(
{
'task1': table_html
}
)
email.send(body, 'html')
多附件说明
如需多附件,使用如下形式定义file_path参数即可。
file_path = ["path1/file_name1", "path2/file_name2", ...]
开发日志
2022-2-17
- 完成邮件推送功能开发与测试,并推至仓库
- 完成打包并发布到pypi
2022-2-28
- 调整邮件发送类型,支持html
2022-3-2
- 新增dataframe转化html功能
- 补充dataframe转化示例
2022-3-4
- 支持多附件上传
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dm-easy-email-0.2.2.tar.gz
(8.0 kB
view hashes)
Built Distribution
Close
Hashes for dm_easy_email-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13bbeec9f197f7284e39ff5c8f54418247ede7e120745c5fc40b8b36606bd244 |
|
MD5 | 27f80ce70ce4d8411fe75e1887da6081 |
|
BLAKE2b-256 | 13679321c63c31d05d2c044923fb9a699df610b71850106cd4f8ebd361496300 |