You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Bitbucket Pipelines中通过邮件发送Android APK?

在Bitbucket Pipelines中发送Android APK到邮箱的实现方案

嘿,我来给你分享几个靠谱的实操方案,帮你把构建好的Android APK通过Bitbucket Pipelines发送到邮箱,替代你现在用的Slack上传方式:

方案一:用mutt命令行工具发送带附件的邮件

这是最直接的命令行方式,适合简单的邮件发送需求,步骤如下:

  1. 首先在你的bitbucket-pipelines.yml里添加安装mutt和配置SMTP的步骤,记得用Bitbucket的环境变量存储敏感信息(比如邮箱密码),绝对不要硬编码:
steps:
  - step:
      name: Build APK and send via email
      image: android-sdk:latest  # 用你平时构建Android的镜像即可
      script:
        # 先执行你的APK构建命令
        - ./gradlew assembleDebug
        # 安装mutt和SSL证书(避免SMTP连接时的证书报错)
        - apt-get update && apt-get install -y mutt ca-certificates
        # 配置mutt的SMTP参数
        - echo "set from='${SENDER_EMAIL}'" > ~/.muttrc
        - echo "set smtp_url='smtps://${SMTP_USERNAME}:${SMTP_PASSWORD}@${SMTP_SERVER}:${SMTP_PORT}'" >> ~/.muttrc
        - echo "set smtp_pass='${SMTP_PASSWORD}'" >> ~/.muttrc
        - echo "set ssl_force_tls=yes" >> ~/.muttrc  # 强制启用TLS加密,保障安全
        # 准备邮件正文,发送带APK附件的邮件
        - echo "APK构建完成!附件是最新的Debug版本,可直接安装测试" > email_body.txt
        - mutt -s "【Bitbucket自动构建】Android Debug APK" -a ./app/build/outputs/apk/debug/app-debug.apk -- ${RECIPIENT_EMAIL} < email_body.txt
  1. 然后在Bitbucket仓库的Settings > Repository variables里添加以下环境变量:
    • SENDER_EMAIL:发件人邮箱(比如你的项目构建专用邮箱)
    • SMTP_USERNAME:SMTP用户名(通常就是发件人邮箱地址)
    • SMTP_PASSWORD:SMTP密码(如果用Gmail需要先开启两步验证,再创建专用的App Password;Outlook可直接用邮箱密码)
    • SMTP_SERVER:SMTP服务器地址(比如Gmail是smtp.gmail.com,Outlook是smtp.office365.com
    • SMTP_PORT:SMTP端口(比如Gmail用465,Outlook用587)
    • RECIPIENT_EMAIL:收件人邮箱,多个收件人用逗号分隔即可

方案二:用SendGrid API发送(适合批量或高稳定性需求)

如果需要发送给多个收件人,或者想要更稳定的邮件投递服务,推荐用SendGrid的API,步骤如下:

  1. 先去SendGrid注册账号,创建一个拥有「Mail Send」权限的API Key
  2. 在Bitbucket仓库变量里添加SENDGRID_API_KEYRECIPIENT_EMAIL
  3. bitbucket-pipelines.yml里添加发送步骤:
steps:
  - step:
      name: Build APK and send via SendGrid
      image: android-sdk:latest
      script:
        - ./gradlew assembleDebug
        # 确保curl可用(大部分镜像自带,保险起见还是装一下)
        - apt-get update && apt-get install -y curl
        # 调用SendGrid API发送带附件的邮件
        - curl -X POST "https://api.sendgrid.com/v3/mail/send" \
          -H "Authorization: Bearer ${SENDGRID_API_KEY}" \
          -H "Content-Type: application/json" \
          -d '{
                "personalizations": [{"to": [{"email": "'"${RECIPIENT_EMAIL}"'"}]}],
                "from": {"email": "your-build-bot@example.com"},
                "subject": "【Bitbucket自动构建】Android Debug APK",
                "content": [{"type": "text/plain", "value": "APK构建完成,附件是最新的测试版本"}],
                "attachments": [
                  {
                    "content": "'"$(base64 -w 0 ./app/build/outputs/apk/debug/app-debug.apk)"'",
                    "filename": "app-debug.apk",
                    "type": "application/vnd.android.package-archive",
                    "disposition": "attachment"
                  }
                ]
              }'

几个重要提醒

  • 如果用Gmail作为发件人,必须开启两步验证并创建App Password,直接用邮箱密码会被拒绝
  • 要确保Bitbucket Pipelines的构建环境能访问对应的SMTP服务器或SendGrid API(没有防火墙限制)
  • 如果APK文件超过邮箱附件大小限制(比如25MB),可以先把APK上传到云存储(比如AWS S3),然后把下载链接放到邮件正文里

内容的提问来源于stack exchange,提问作者North Face

火山引擎 最新活动