Cakemail Nextgen API客户端

cakemail的Python项目详细描述


安装

使用pip安装cakemail

pip install cakemail

使用

用您的Cakemail用户名和密码从CakemailApi类创建一个对象。对象将负责 所有授权机制都是自动的。在

^{pr2}$

调用其中一个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())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java线程;创建一个单独的线程来定期执行某些操作   用java将SonarQube升级到5.2失败。util。同时发生的CancellationException:空   在线程对象上调用start时,线程上设置的java优先级无效   java如何在不使用reduce()或last()折叠的情况下获取通量的最后一项   java如何从ArrayList中获取元素?   应用了逻辑的JavaTwitterAPI   在这种情况下,怎样才能不让自己重复?安卓的java   JavaAndroid:线程可运行和处理程序。在run方法中发布问题(Handler.postXX在预期情况下不会按时运行)   java log4j grok与管道故障   使用循环返回命令选项时出现问题/仅运行一个命令(JAVA)   java双重比较问题   使用vertx的JWT公钥/私钥身份验证中的java握手   用Java将WMA和AAC音频转换为MP3   解析字符串java get index   与具有不同数据类型的密钥同名的java JSON