def uploadToPgyer(self): params = { "uKey": self.uKey, "_api_key": self.api_key, "file": self.ipaFile, "publishRange": "2", "password": self.installPassword, } coded_params, boundary = self._encode_multipart(params) headers = {"Content-Type": "multipart/form-data; boundary={boundary}".format(boundary=boundary)} try: responseObject = self.httpClient( "POST", self.domain, self.urlPath, coded_params.encode("ISO-8859-1"), headers ) return self.handle_resule(responseObject, self.mail_receiver) except: return G7ReqHandler.responseDataText(10003)
def send_Email(self, json_result, mail_receiver): if len(mail_receiver) == 0: return G7ReqHandler.responseDataText(10005) appName = json_result["data"]["appName"] appKey = json_result["data"]["appKey"] appVersion = json_result["data"]["appVersion"] appBuildVersion = json_result["data"]["appBuildVersion"] appShortcutUrl = json_result["data"]["appShortcutUrl"] appIconKey = json_result["data"]["appIcon"] appFileSize = json_result["data"]["appFileSize"] appIdentifier = json_result["data"]["appIdentifier"] appUpdated = json_result["data"]["appUpdated"] appCreated = json_result["data"]["appCreated"] # 根据不同邮箱配置 host,user,和pwd if self.currentG7User != None and self.currentG7User.mail_pwd and self.currentG7User.mail_pwd != "": domain = self.currentG7User.email.split("@")[1] mail_host = "smtp." + domain mail_user = self.currentG7User.email mail_username = self.currentG7User.username mail_pwd = self.currentG7User.mail_pwd else: mail_host = "smtp.163.com" mail_user = "******" mail_username = "******" mail_pwd = "*******" mail_to = ",".join(mail_receiver) mail_smtpPort = "25" mail_sslPort = "465" msg = MIMEMultipart() appInstallUrl = "http://www.pgyer.com/" + str(appShortcutUrl) appIconUrl = "http://pgy-app-icons.qiniudn.com/image/view/app_icons/" + str(appIconKey) appQRCodeUrl = "http://qr.liantu.com/api.php?text=" + str(appInstallUrl) appATOInstallUrl = "itms-services://?action=download-manifest&url=https://ssl.pgyer.com/app/plist/" + str( appKey ) environsString = '<table width="700" border="0" cellpadding="0" cellspacing="0" align="center">' environsString += "<tbody><tr>" environsString += ' <td width="100%" style="" align="center" bgcolor="#f7f7f7">' environsString += ( ' <table border="0" cellpadding="0" cellspacing="0" align="center" style="width:100%;">' ) environsString += " <tbody><tr>" environsString += ' <td valign="top" class="ecxleft" style="width:100%;">' environsString += ( ' <table border="0" cellpadding="15" cellspacing="0" width="100%" bgcolor="#F6F6F6">' ) environsString += " <tbody><tr>" environsString += " <td>" environsString += ( ' <table border="0" cellpadding="0" cellspacing="0" width="100%">' ) environsString += " <tbody><tr>" environsString += ' <td align="left" width="65">' environsString += ( ' <img src="' + str(appIconUrl) + '" style="width:50px;height:50px;border-radius:10px;border-radius:10px;border:1px solid #ddd;">' ) environsString += " </td> " environsString += ' <td align="left">' environsString += ( ' <font color="#55555" size="3" style="font-size:16px;"><b>' + str(self.product_name) + "</b></font><br>" ) environsString += ( ' <font color="#55555" size="2" style="font-size:14px;">版本 ' + str(appVersion) + " (build " + str(self.build_version) + ")</font>" ) environsString += " </td>" environsString += ' <td width="50">' environsString += ( ' <font color="#55555" face="Trebuchet MS,Arial" size="3">' ) environsString += ( ' <a href="' + str(appATOInstallUrl) + '" target="_blank" style="background-color:#56bc94;display:inline-block;font-size:14px;width:90px;height:32px;text-align:center;line-height:32px;color:white;text-decoration:none;font-weight:bold;">设备直接安装</a> ' ) environsString += " </font>" environsString += " </td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table>" environsString += "<h3>构建包信息</h3><p>" # environsString += '<p>ipa 包下载地址 : ' + '暂不提供' + '<p>' environsString += "<p>构建版本号 : " + self.project_version + "<p>" environsString += "<p>App名称 : " + str(self.product_name) + "<p>" environsString += "<p>BundleId : " + str(appIdentifier) + "<p>" environsString += "<p>App文件大小 : " + str(self.fileSize(int(appFileSize))) + "<p>" environsString += "<p>版本号 : " + str(appVersion) + "<p>" environsString += "<p>上传时间 : " + str(appCreated) + "<p>" environsString += "<p>更新时间 : " + str(appUpdated) + "<p>" environsString += ( "<p>在线安装 : " + "http://www.pgyer.com/" + str(appShortcutUrl) + " 密码 : " + self.installPassword + "<p>" ) environsString += "<p>二维码安装 :<p>" environsString += ( '<p><img src="' + str(appQRCodeUrl) + '" style="width:100px;height:100px;border-radius:10px;border-radius:10px;border:1px solid #ddd;"><p>' ) message = environsString body = MIMEText(message, _subtype="html", _charset="utf-8") msg.attach(body) msg["To"] = mail_to msg["from"] = mail_user msg["subject"] = "[测试]" + self.product_name + "_v" + appVersion + "_" + self.build_version try: s = smtplib.SMTP_SSL(mail_host, mail_sslPort) s.ehlo() s.login(mail_user, mail_pwd) s.sendmail(mail_user, mail_receiver, msg.as_string()) s.quit() return G7ReqHandler.responseDataText(0, "打包成功", {}) # self.responseWrite(0, "打包成功", {}) except Exception as e: return G7ReqHandler.responseDataText(10004)
def handle_resule(self, result, mail_receiver): json_result = json.loads(result) if json_result["code"] is 0: return self.send_Email(json_result, mail_receiver) else: return G7ReqHandler.responseDataText(10003)