Cakemail Nextgen API客户端
cakemail的Python项目详细描述
安装
使用pip
安装cakemail
包
pip install cakemail
使用
用您的Cakemail用户名和密码从CakemailApi
类创建一个对象。对象将负责
所有授权机制都是自动的。在
调用其中一个API操作(请参阅联机文档)
my_account=api.account.get_self()
API操作
API操作接受OpenAPI模型和python字典。在
fromcakemail.modelsimportCreateSendersender=api.sender.create(create_sender=CreateSender(name='My Sender',email='someone@gmail.com'))sender=api.sender.create(create_sender={'name':'My Sender','email':'someone@gmail.com'})
您还可以为所有操作参数解压字典,允许您将整个有效负载表示为单个 字典:
sender=api.sender.create(**{'create_sender':{'name':'My Sender','email':'someone@gmail.com'}})
操作实例
创建发件人
fromcakemail.modelsimportCreateSender,ConfirmSendersender=api.sender.create(CreateSender(name='My Sender',email='someone@gmail.com'))# look for the confirmation ID in your email inboxapi.sender.confirm(ConfirmSender(confirmation_id='[confirmation ID]'))
创建联系人列表
fromcakemail.modelsimportList,Sendermy_new_list=api.list.create(list=List(name='my new list',default_sender=Sender(id=sender.id)))
发送事务性电子邮件
fromcakemail.modelsimportEmail,EmailContent# expressed as OpenAPI modelsapi.transactional_email.send(email=Email(email='destination@gmail.com',sender=sender,content=EmailContent(subject='Subject line',text='Email body',encoding='utf-8')))# expressed as a dictionaryapi.transactional_email.send(email={'email':'destination@gmail.com','sender':sender,'content':{'subject':'Subject line','text':'Email body','encoding':'utf-8'}})
访问数据
CakemailAPI总是返回data
对象下的数据。为了简单起见,可以访问资源数据
直接从返回的响应中:
my_user=api.user.get_self()print(f'id: {my_user.id}, email: {my_user.email}')
遍历列表
有些方法返回可直接迭代的资源列表:
campaigns=api.campaign.list()forcampaignincampaigns:html=api.campaign.render(campaign_id=campaign.id).htmlprint(f'id: {campaign.id}, name: {campaign.name}, html: {html}')
分页
分页存储在返回资源列表的所有方法的pagination
属性中:
campaigns=api.campaign.list(with_count=True)print(f""" page: {campaigns.pagination.page}, per_page: {campaigns.pagination.per_page}, count: {campaigns.pagination.count} """)
字典表示法
API方法返回响应对象;如果您喜欢使用python dict表示,请使用to_dict
方法:
campaign_dict=api.campaign.get(campaign_id=123).to_dict()forcampaigninapi.campaign.list():print(campaign.to_dict())
- 项目
标签: