GET https://open.exmail.qq.com/cgi-bin/oauth2/authorize? response_type=code& client_id=YOUR_CLIENT_ID& redirect_uri=https://your-app.com/callback/exmail& scope=user_info,email& state=XYZ123 Once the user approves, Tencent redirects back with a code . Your backend exchanges this code for an access_token and the user’s profile.
If you are building a B2B tool or an internal dashboard for Chinese clients, supporting "Exmail Login" (QQ Enterprise login) is often a requirement, not a luxury. It allows employees to use their corporate email credentials to access third-party services without creating a new password. exmail qq login
{ "userid": "zhangshan", "name": "Zhang Shan", "email": "zhangshan@company.com", "mobile": "13800000000", "department": [1, 2] } Here is where many Western developers get confused. Exmail is deeply integrated with WeChat Work (WeCom). GET https://open
session['user'] = user_info return f"Logged in as {user_info['email']}" Implementing Exmail login is straightforward if you treat it as standard OAuth 2.0. However, the real value comes from understanding the Tencent ecosystem —linking Exmail login to WeChat Work unlocks seamless approval workflows and mobile access. If you are building a B2B tool or
@app.route('/login/exmail') def login(): params = { 'response_type': 'code', 'client_id': EXMAIL_CLIENT_ID, 'redirect_uri': REDIRECT_URI, 'scope': 'user_info email' } url = "https://open.exmail.qq.com/cgi-bin/oauth2/authorize" req = requests.Request('GET', url, params=params).prepare() return redirect(req.url)
# Get user info user_url = f"https://service.exmail.qq.com/cgi-bin/getuserinfo?access_token={access_token}" user_info = requests.get(user_url).json()
GET https://service.exmail.qq.com/cgi-bin/getuserinfo?access_token=TOKEN