如何在Bitbucket Pipelines中通过邮件发送Android APK?
在Bitbucket Pipelines中发送Android APK到邮箱的实现方案
嘿,我来给你分享几个靠谱的实操方案,帮你把构建好的Android APK通过Bitbucket Pipelines发送到邮箱,替代你现在用的Slack上传方式:
方案一:用mutt命令行工具发送带附件的邮件
这是最直接的命令行方式,适合简单的邮件发送需求,步骤如下:
- 首先在你的
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
- 然后在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,步骤如下:
- 先去SendGrid注册账号,创建一个拥有「Mail Send」权限的API Key
- 在Bitbucket仓库变量里添加
SENDGRID_API_KEY和RECIPIENT_EMAIL - 在
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




