通过OpenSSL终端用POP3获取Gmail时Base64编码内容解码咨询
解码POP3获取的Base64编码邮件内容
当你通过POP3协议获取邮件时,服务器会按照邮件本身的Content-Transfer-Encoding头返回原始编码内容,不会自动解码。以下是两种实用的解码方法:
方法一:手动复制编码内容后解码
- 执行
retr {no}命令后,复制所有以>开头的Base64编码行(可保留换行,多数base64工具支持多行输入,也可去掉每行开头的>和空格) - 用系统自带的
base64工具解码:- Linux/macOS下,直接粘贴编码内容到终端,按
Ctrl+D结束输入后解码:base64 -d - 或者把编码内容保存到文件(比如
encoded.txt),再解码输出到文本文件:base64 -d encoded.txt > decoded_mail.txt
- Linux/macOS下,直接粘贴编码内容到终端,按
方法二:脚本自动化获取+解码
如果需要频繁操作,可写个简单的Shell脚本,自动完成连接、取件、解码全流程:
#!/bin/bash # 替换为你的Gmail账号和应用专用密码 USER="your_email@gmail.com" APP_PASS="your_app_specific_password" # 连接POP3服务器并处理邮件 openssl s_client -connect pop.gmail.com:995 -quiet << EOF user $USER pass $APP_PASS retr 1 # 替换为你要获取的邮件编号 quit EOF | awk ' /Content-Transfer-Encoding: base64/ {flag=1; next} flag && /^>/ {print substr($0, 3)} /^\.$/ {flag=0} ' | base64 -d
脚本会自动跳过邮件头,提取Base64编码部分并直接输出解码后的文本。
注意事项
- 若邮件是多部分MIME格式(含附件或HTML内容),需先定位
text/plain段的编码内容再解码,上述脚本适用于纯文本邮件。 - 必须使用Gmail的应用专用密码,普通账号密码无法通过验证。
内容的提问来源于stack exchange,提问作者Achintya
相关产品推荐
相关产品推荐

