You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作绕过浏览器不安全错误、通过代理登录Gmail的发邮件Bot?

解决Gmail自动化登录的不安全错误与代理配置方案

一、先搞定Selenium的浏览器指纹伪装(解决不安全错误)

Gmail会检测自动化工具特征,直接用默认Selenium参数大概率触发安全验证,你需要修改以下配置:

  • 禁用自动化检测标记:添加--disable-blink-features=AutomationControlled参数,让浏览器不暴露自己被自动化控制
  • 替换真实用户代理:不要用Selenium默认UA,换成当前主流浏览器的UA(比如Chrome最新版)
  • 复用已验证的用户会话:指定本地Chrome的用户数据目录,这样可以跳过重复登录验证,前提是这个目录下的账号已经通过Gmail的安全验证
  • 调整浏览器启动参数:禁用沙箱、扩展,模拟正常窗口大小

示例Python代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 核心:禁用自动化特征检测
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
# 设置真实Chrome用户代理
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
# 禁用沙箱和扩展,避免异常标记
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-extensions")
# 指定本地Chrome用户数据目录(替换成你的路径)
chrome_options.add_argument(r"user-data-dir=C:\Users\YourName\AppData\Local\Google\Chrome\User Data")
# 配置代理
chrome_options.add_argument("--proxy-server=http://your-proxy-ip:port")

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://mail.google.com/")

二、代理的合规性优化

不安全错误也可能来自代理IP本身:

  • 别用免费公开代理:这类IP基本都被Gmail标记为风险IP,建议用付费住宅代理(residential proxy),更接近真实用户IP
  • 选高匿名代理:确保代理不会泄露真实IP或代理特征,避免被Gmail识别为异常访问
  • 匹配IP区域:尽量用和Gmail账号注册地一致的代理IP,减少风控触发概率

三、替代方案:用Gmail API(完全避开浏览器检测)

如果Selenium的检测实在绕不开,官方API是更稳定的选择:

  1. 在Google Cloud Console创建项目,启用Gmail API,生成OAuth2客户端凭据
  2. 给目标Gmail账号授权,获取刷新令牌,后续可以用令牌调用API发送邮件
  3. 请求API时直接配置代理,不用碰浏览器

示例Python代码:

import base64
from email.mime.text import MIMEText
import requests
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build

# 加载OAuth2授权令牌(提前通过授权流程生成)
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/gmail.send'])
# 配置代理
proxies = {
    'http': 'http://your-proxy-ip:port',
    'https': 'http://your-proxy-ip:port'
}

# 构建带代理的Gmail服务
service = build(
    'gmail', 'v1', 
    credentials=creds,
    requestBuilder=lambda **kwargs: requests.Session().request(proxies=proxies, **kwargs)
)

# 构造邮件内容
message = MIMEText('这是测试邮件内容')
message['to'] = 'recipient@example.com'
message['subject'] = '测试邮件'
raw_message = base64.urlsafe_b64encode(message.as_bytes()).decode()

# 发送邮件
send_result = service.users().messages().send(userId='me', body={'raw': raw_message}).execute()
print(f"邮件发送成功,ID: {send_result['id']}")

四、关键注意事项

  • 控制操作频率:Gmail有严格的频率限制,短时间内大量登录/发邮件会直接触发风控
  • 两步验证处理:如果用Selenium,建议给Gmail账号设置App密码,避免每次登录都要输验证码;用API的话,OAuth2授权更安全
  • 模拟真实操作节奏:不要快速点击、极速输入,用time.sleep()添加合理延迟,比如输入密码时每间隔0.5秒输一个字符

内容的提问来源于stack exchange,提问作者Muneeb Haroon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:17:16