python版webpower的edm的api接口
来源:互联网 发布:杨元元之死 知乎 编辑:程序博客网 时间:2024/05/16 14:26
webpower似乎只提供php,java,.net接口,正好要用到python的接口,于是就参照php的接口写了个webpower的接口
python版:
# -*- coding: utf-8 -*-import os,sys,traceback,timereload(sys)sys.setdefaultencoding('utf-8')from suds.client import Clientclass webpower(object): """docstring for webpower""" def __init__(self, arg): super(webpower, self).__init__() self.arg = arg self.client = None self.url = self.arg.get('url','') self.login = self.arg.get('login',{}) def connection(self): '''创建连接''' self.client = Client(self.url) self.client.set_options(headers={"Content-Type":"text/xml; charset=utf-8"}) def createSenderAddress(self,fromEmail = ''): ''' 创建发送的邮件地址 @param fromEmail @return Dict ''' resultDict = {} try: if not self.client : self.connection() tmpResult = self.client.service.createSenderAddress(self.login,fromEmail) if hasattr(tmpResult, 'statusMsg'): resultDict['statusMsg'] = tmpResult.statusMsg if hasattr(tmpResult, 'id'): resultDict['id'] = tmpResult.id except: resultDict['error'] = traceback.format_exc() return resultDict def createCampaign(self,campaignName = '',defaultSenderName='',defaultSenderAddrID=''): ''' 创建活动 @param campaignName 活动名称 @param defaultSenderName 发送者名称 @param defaultSenderAddrID 发送的ID地址 return Dict ''' resultDict = {} try: if not self.client : self.connection() tmpResult = self.client.service.createCampaign(self.login, 0, #brandID campaignName, #The name of the new campaign defaultSenderName, #default Sender Name defaultSenderAddrID, #default Sender Address Id 0, #default Reply Address 'cn', #lang False, #is overall "", "", "" ) if hasattr(tmpResult, 'status'): resultDict['status'] = tmpResult.status if hasattr(tmpResult, 'id'): resultDict['id'] = tmpResult.id except: resultDict['error'] = traceback.format_exc() return resultDict def createMailing(self,campaignID='',title = '',fromName ='',html =''): ''' 创建活动对应的邮件内容 @param campaignID 活动ID @param title 活动标题/活动唯一标题 @param fromName 来源名称 @param html 发送的html内容 @return Dict ''' resultDict = {} try: if not self.client : self.connection() mailingName = '%s_%s' % (title, int(time.time())) tmpResult = self.client.service.createMailing(self.login, campaignID, #campaign ID mailingName, #mailing Name 'cn', #lang title, #subject fromName, #fromName 0, #sender ID html #html ) if hasattr(tmpResult, 'status'): resultDict['status'] = tmpResult.status if hasattr(tmpResult, 'id'): resultDict['id'] = tmpResult.id except: resultDict['error'] = traceback.format_exc() return resultDict def getMailingStatsSummary(self,campaignID='',mailingID=''): ''' 通过邮件ID来获取该邮件的发送情况 @param campaignID 品牌ID @param mailingID 邮件ID @return Dict ''' resultDict = {} try: if not self.client : self.connection() tmpResult = self.client.service.getMailingStatsSummary(self.login, campaignID, #campaign ID mailingID, #mailing ID ) resultDict['result'] = dict(tmpResult) except: resultDict['error'] = traceback.format_exc() return resultDict def addRecipient(self,campaignID ='',groupIDs =[],recipientData = []): ''' 增加一条数据到组 @param campaignID 品牌ID @param groupIDs 组ID @param recipientData 添加的数据集 例: [{'name':'email','value':'xx@shopex.cn'}] return Dict ''' resultDict = {} try: if not self.client : self.connection() #数组结构 arrayofint = self.client.factory.create('ArrayOfIntType') arrayofint.int = groupIDs #NewRecipient 结构 NewRecipientDataType = self.client.factory.create('NewRecipientType') NewRecipientDataType.fields = recipientData tmpResult = self.client.service.addRecipient(self.login, campaignID, #campaign ID arrayofint, #groupIDs arrayofint1 NewRecipientDataType, #recipient Data recipientData True, True ) resultDict['result'] = dict(tmpResult) except: resultDict['error'] = traceback.format_exc() return resultDict def addGroup(self,campaignID ='',name = ''): ''' 新增组 @param campaignID 品牌ID @param name 组名称 @return Dict ''' resultDict = {} try: if not self.client : self.connection() #NewGroupType NewGroupType = self.client.factory.create('NewGroupType') NewGroupType.name = name NewGroupType.is_test = True NewGroupType.remarks = '' tmpResult = self.client.service.addGroup(self.login, campaignID, #campaign ID NewGroupType, #New Group Type ) resultDict['result'] = dict(tmpResult) except: resultDict['error'] = traceback.format_exc() return resultDict def sendMailing(self,campaignID ='',mailingID='',resultsEmail='',groupIDs=[],callbackUrl=''): ''' 发送邮件 @param campaignID 品牌ID @param mailingID 邮件ID @param isTest 是否是测试 @param resultsEmail 结果email @param groupIDs 组ID @param callbackUrl 返回的URL @return Dict ''' resultDict = {} try: if not self.client : self.connection() #groupIDs ArrayOfIntType = self.client.factory.create('ArrayOfIntType') ArrayOfIntType.int = groupIDs #langs ArrayOfStringType = self.client.factory.create('ArrayOfStringType') ArrayOfStringType.string = ['cn'] tmpResult = self.client.service.sendMailing(self.login, campaignID, #campaign ID mailingID, #mailing ID False, #is test resultsEmail, #results Email ArrayOfIntType, #group ids 0, ArrayOfStringType,#langs '', callbackUrl ) resultDict['result'] = dict(tmpResult) except: resultDict['error'] = traceback.format_exc() return resultDict def sendSingleMailing(self,campaignID='',mailingID='',recipientID=''): ''' 发送单个EMAIL @param campaignID 品牌ID @param mailingID 发送的EMAIL地址 @param recipientID recipient id @return Dict ''' resultDict = {} try: if not self.client : self.connection() tmpResult = self.client.service.sendSingleMailing(self.login, campaignID, #campaign ID mailingID, #mailing ID recipientID , #is test ) resultDict['result'] = {'status':tmpResult} except: resultDict['error'] = traceback.format_exc() return resultDictif __name__ == '__main__': arg = { 'login' : {'username':'******','password':'******'}, 'url' : 'http://******.dmdelivery.com/x/soap-v4/wsdl.php' } #print webpower(arg).createSenderAddress('wangzhaoming@shopex.cn') #print webpower(arg).createCampaign('1sssss') #print webpower(arg).createMailing(237,'subjecttest22','67272740','<html><body>test</body></html>') #print webpower(arg).getMailingStatsSummary(237,1745) #print webpower(arg).addRecipient(237,[81],[{'name':'email','value':'test1@shopex.cn'}]) #print webpower(arg).addGroup(237,'create003') #print webpower(arg).sendMailing(237,1745,'wangzhaoming@shopex.cn',[81],callbackUrl='http://callback.webpower-inc.com/callback.php') #print webpower(arg).sendSingleMailing(237,1745,3) pass
- python版webpower的edm的api接口
- edm的基本步骤
- EDM制作的注意事项
- Python实现简单的API接口
- 实体数据模型EDM的作用
- Webpower携手梅花网,打造优雅的SaaS产品服务
- 新浪微博API使用之python接口的使用
- Python如何调用新浪api接口的问题
- 其他网站和应用的Python接口API
- tslib 的 API 接口
- seajs 的api接口
- MySQL的API接口
- usrp的API接口
- API的接口变迁
- api接口的实现
- api接口的数字签名
- 打造成功的EDM营销[转]
- EDM邮件营销的参考方法技巧
- 携我手,共赴一场盛世的花季
- Java序列化【草案三】
- Object Recognition and Scene Understanding(九)模型转化Mat-〉XML
- 好用的网站推荐
- java序列化的实现
- python版webpower的edm的api接口
- Android开发日志 摄像头视频流捕获
- ASP.NET调用存储过程并接收存储过程返回值
- 为什么程序员要树立自己的品牌
- 携我手,共赴一场盛世的花季
- GDI+ —— Tcanvas 类属性及方法.......
- 总结的全球范围内的计算机视觉牛人 3... ... (国内外)持续更新
- 浅析Java的异常处理机制
- 携我手,共赴一场盛世的花季