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)